>php教程 >php手册 >Strict Standards: Only variables should be passed

Strict Standards: Only variables should be passed

WBOY
WBOY원래의
2016-06-06 20:10:151220검색

php中使用内置的reset函数可以获取array的第一个元素的值。例如: $arr = array('one', 'two', 'three');echo reset($arr); // 输出的结果为 one 对于下述代码,如果php开启了“Strict Standards”,将会看到“Strict Standards: Only variables should be p

php中使用内置的reset函数可以获取array的第一个元素的值。例如:

$arr = array('one', 'two', 'three');
echo reset($arr);   // 输出的结果为 one

对于下述代码,如果php开启了“Strict Standards”,将会看到“Strict Standards: Only variables should be passed by reference in”的提示。

$str = 'netingcn.com';
echo reset(explode('.', $str));

为什么会这样呢?可以先看看reset函数的定义:

function reset (array &$array) {}

从定义中可以看到,reset接受的参数是一个array的引用。而上述代码中explode返回值不是任何array的引用,所以在“Strict Standards”下会有上述提示。解决办法很简单,只需要把reset(explode(‘.’, $str))分两步写即可。第一步先把explode的返回值赋给一个变量,第二步把这个变量作为reset参数。

出现上面的提示的不只是reset函数,只要参数接受的是对象引用,而传值直接使用function返回值都会看到那样的提示。例如内置的array_pop、shuffle、curent、next、prev、next等等。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:Grid Archives 1.7.0다음 기사:phpDocumentor安装与使用