为了账号安全,请及时绑定邮箱和手机立即绑定

 $ext=strtolower(end(explode(".", $val)));

end();函数的php文档的介绍:The array.  This array is passed by reference because it is modified by the function.  This means you must pass it a real variable and not a function returning an array because only actual variables may be passed by reference.

我看的意思是不能通过函数返回数组,为什么这么写可以呢。

 $ext=strtolower(end(explode(".", $val)));这段代码在index.php的325行。

求解!!谢谢!

正在回答

4 回答

你看到end这个函数是只能的参数是取变量的地址,不可以直接把值直接传进去,所以会报这个警告。当PHP5.3以后严格校验的时候就会报这个问题。只能传变量,不可以直接写值。

1 回复 有任何疑惑可以回复我~

有老师能解释一下具体的原因吗,为什么必须通过一个变量引用才行呢,Java中这样写好像可以,php中所有的函数是不是都必须通过变量引用才行,还是个别的。

0 回复 有任何疑惑可以回复我~

 $arr=explode(".", $val);

     $ext=strtolower(end($arr));

这样改就行了。

0 回复 有任何疑惑可以回复我~

我测试一下,报错了,Strict Standards: Only variables should be passed by reference in。我自己的代码和下载的源码都出现同样的错误。

不知道你们的是否和我的一样。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信