【问题标题】:Fix php Array to string converions修复 php 数组到字符串的转换
【发布时间】:2021-07-15 21:01:54
【问题描述】:

我正在使用 2008 年的 PHP 程序来拍摄图像,对其进行注释并创建图像的缩略图。

该程序可以运行,但会引发 Array 到 String 转换的通知。

相关代码为:

$ttfont = 'Arial.TTF';
if ($ttfont != '') {
    # using ttf fonts
    $alpha   = range("a", "z");
    $alpha_u = range("A", "Z");
    $alpha = $alpha.$alpha_u.range(0, 9);
    //print_r($alpha);
    $_b = imageTTFBbox($fontsize,0,$ttfont,$alpha);
    //print_r($_b);
    $fontheight = abs($_b[7]-$_b[1]);
} else {

错误在一行:

$alpha = $alpha.$alpha_u.range(0, 9);

print_r 是我的调试尝试。

【问题讨论】:

  • 你希望这条线做什么? range() 返回一个数组,而不是字符串,你不能将它们连接起来。
  • 返回字符串"ArrayArrayArray"
  • 除非您不在乎 $alpha 的值是什么,否则我看不出该程序如何工作。
  • range() 函数返回一个数组,因此您应该使用 array_merge() 而不是将其与点粘合,因为它们是字符串。
  • @biesior array_merge 有什么帮助?参数应该是一个字符串。

标签: php arrays string warnings notice


【解决方案1】:

你可以使用类似的内爆函数

implode("",range("a","z"))

欲了解更多信息,请参阅https://www.php.net/manual/en/function.implode.php

   $alpha   = implode("",range("a","z"));
   $alpha_u = implode("",range("A","Z"));
   $alpha = $alpha.$alpha_u.implode("",range(0, 9));

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
猜你喜欢
  • 2015-09-09
  • 2017-05-01
  • 1970-01-01
  • 2023-04-07
  • 2017-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-28
相关资源
最近更新 更多