array_pop () требует устаревшего вызова по ссылке при вызове из call_user_func () - PullRequest
5 голосов
/ 09 марта 2012
call_user_func('array_pop', $myarray);

дает «Параметр 1 для array_pop (), который должен быть ссылкой, заданное значение», в то время как

call_user_func('array_pop', &$myarray);

дает «Время передачи по вызову устарело».

Так что я должен делать? Я нахожусь на "PHP версии 5.3.5" на Windows, и отключение устаревших предупреждений не вариант.

Спасибо!

1 Ответ

5 голосов
/ 09 марта 2012

Либо просто позвоните прямо:

array_pop($myarray);

Или используйте call_user_func_array(), который принимает массив ссылок в качестве параметров, не крича вам о передаче по ссылке во время вызова:

call_user_func_array('array_pop', array(&$myarray));

Причина, по которой это не вызывает предупреждение о переходе по ссылке во время вызова, заключается в том, что на самом деле ничего подобного не происходит. Существует небольшая разница между передачей переменной по ссылке и созданием массива ссылок и передачей этого массива по значению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...