array pop() требует устаревшего вызова по ссылке при вызове из функции пользователя вызова()
call_user_func('array_pop', $myarray);
Дает 'Параметр 1 для array_pop (), ожидаемый как ссылка, значение дано', в то время как
call_user_func('array_pop', &$myarray);
Дает время вызова передача по ссылке является устаревшим'.
Так что же мне делать? Я нахожусь на "PHP версии 5.3.5" на Windows, и включение устаревших предупреждений не является вариантом.
Спасибо!
1 ответ:
Либо просто назовите его напрямую:
array_pop($myarray);
Или использовать
call_user_func_array()
, который принимает массив ссылок в качестве параметров, не крича на вас о времени вызова pass-by-reference:call_user_func_array('array_pop', array(&$myarray));
Причина, по которой это не вызывает предупреждения о передаче времени вызова, заключается в том, что ничего подобного на самом деле не происходит. Существует тонкая разница между передачей переменной по ссылке и созданием массива ссылок и передачей этого массива по значению.