这里是一个变量,它的输出如下:为什么数组中的数据不能用于php的魔术方法__call()?
$a = [2, 3, 4];
echo implode(',', $a);
输出
2,3,4
而
我有一类与PHP魔术方法__call
class MagicMethod {
public function __call ($pm, $values) {
echo "there is not <b>$pm</b> method <br/> and arguments are <br/>";
echo implode(',', $values);
}
}
$magic = new MagicMethod;
$magic->notExist([2, 3, 54]);
现在它显示了我的错误信息:
注意:数组字符串转换在
为什么__call
方法获得阵列数据?
因为你给它一个数组? (** [2,3,54] ** =>这是一个数组)。之后,您尝试'echo'数组,然后导致“数组到字符串转换...” – Xatenev
因为您传递的是单个参数,这恰好是一个数组;所以在__call()里面,它是'$ values [0]'....使用'echo'implode(',',$ values [0]);'''__call()'方法 –
php'implode()函数需要它的第二个参数的'array'数据,我做到了! –