Данная ошибка в php может возникать в ряде случаев. Мы рассмотрим один из них.
При попытке в php получить последний элемент массива таким образом:
возникнет ошибка: Strict Standards: Only variables should be passed by reference.
Для устранения этой ошибки нужно просто обернуть вызов explode в скобки:
Это связано с тем, что функция end() принимает массив по ссылке и сдвигает его внутренний указатель на последний элемент. А по ссылке могут передаваться только объявленные переменные.
Обратите внимание, что так работать не будет:
Придется поместить массив в переменную, а только после этого передать в end():
При попытке в php получить последний элемент массива таким образом:
$ip = '192.168.0.2'; $lastNum = end(explode('.', $ip)); var_dump($lastNum); // string(1) "2"
возникнет ошибка: Strict Standards: Only variables should be passed by reference.
Для устранения этой ошибки нужно просто обернуть вызов explode в скобки:
$ip = '192.168.0.2'; $lastNum = end( (explode('.', $ip)) ); var_dump($lastNum);
Это связано с тем, что функция end() принимает массив по ссылке и сдвигает его внутренний указатель на последний элемент. А по ссылке могут передаваться только объявленные переменные.
Обратите внимание, что так работать не будет:
$lastNum = end( array(1,2,3) ); var_dump($lastNum);
Придется поместить массив в переменную, а только после этого передать в end():
$nums = array(1,2,3); $lastNum = end( $nums ); var_dump($lastNum); // int(3)
Комментариев нет:
Отправить комментарий