Вот переменная, и это выход следующее:Почему данные массива не работают над методом php magic __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] ** => это массив). И после этого вы пытаетесь «эхо» массива, который затем приводит к преобразованию «Array to string ...» – Xatenev
Поскольку вы передаете один аргумент, который оказывается массивом; поэтому внутри __call() это '$ values [0]' .... use 'echo implode (',', $ values [0]);' in your '__call()' method –
php 'implode()' функции нужны 'array' данные из его 2-го аргумента, и я сделал это !! –