问答详情
源自:1-6 file_get_contents() 函数实现查看文件内容

 $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行。

求解!!谢谢!

提问者:Beta_0001 2014-08-10 22:19

个回答

  • King
    2014-08-13 11:44:33
    已采纳

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

  • Beta_0001
    2014-08-10 22:47:30

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

  • Beta_0001
    2014-08-10 22:39:06

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

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

    这样改就行了。

  • Beta_0001
    2014-08-10 22:36:29

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

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