函数parse_users
返回一个数组。
我在另一个函数中执行以下操作:
return reset($this->parse_users($records));
但我得到Strict Standards: Only variables should be passed by reference in...
是因为我在函数上做reset()
吗?
我必须这样做:
$users = $this->parse_users($records);
return reset($users);
或者是别的什么?
答案 0 :(得分:5)
就是这样。 reset
将数组引用作为参数,因此它基本上需要一个实数变量来引用 - 即使它是一个传递引用值。
答案 1 :(得分:3)
你为什么不试试
$users = $this->parse_users($records);
return reset($users);
这是正确的
答案 2 :(得分:3)
单线解决方案使用另外一对支架;这会将引用转换为变量并省略错误:
return reset( ( $this->parse_users($records) ) );
答案 3 :(得分:1)
来自PHP documentation for reset:
mixed reset(array& $ array)
reset()将数组的内部指针倒回第一个元素,并返回第一个数组元素的值。
PHP reset()函数接受数组的引用。 引发严格警告是因为您直接将parse_users的结果传递给reset,而无法在其他函数中访问该数组。
如果您在重置后尝试返回完整数组(而不仅仅是第一个值),则应使用:
$users = $this->parse_users($records);
reset($users);
return $users;
或者,如果您只想要parse_users中的第一个值,则可以使用:
$users = $this->parse_users($records);
return $users[0];
只有在迭代数组并希望确保从头开始时才需要重置功能。</ p>