欢迎光临
我们一直在努力

php end,array_shift,array_pop Only variables can be passed by reference

最近做项目,发现了一个报错  Only variables can be passed by reference,  意思是“只有变量能通过‘引用’”

这个问题往往是数组函数使用的时候里面放的不是一个变量5.3以后的php不在支持这些数组函数的函数返回,例如 array_shift() end() 等函数。

为了兼容以后php的更高版本,请使用array相关函数的时候里面放入变量,而不是函数的返回值。

就是在代码中 使用了一个方法,这个方法的参数值传址引用的例如php的 end方法

php官网的说法

(PHP 4, PHP 5)

end — 将数组的内部指针指向最后一个单元

说明

mixed end ( array &$array )

end() 将 array 的内部指针移动到最后一个单元并返回其值。

参数

array

这个数组。 该数组是通过引用传递的,因为它会被这个函数修改。 这意味着你必须传入一个真正的变量,而不是函数返回的数组,因为只有真正的变量才能以引用传递。

返回值

返回最后一个元素的值,或者如果是空数组则返回 FALSE。错误的使用:

end( explode(".", $file_name) )

正确的使用

$file_extend = explode(".", $file_name);

end($file_extend);

类似的使用

// 会出现如题提示
array_shift(explode('|', $val['spid']))

正确的使用

$arr = explode('|', $val['spid']);
array_shift($arr);
赞(0)
版权归原作者所有,如有侵权请告知。达维营-前端网 » php end,array_shift,array_pop Only variables can be passed by reference

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址