zoukankan      html  css  js  c++  java
  • php函数的传值如果需要引用传递注意的细节

    Strict standards: Only variables should be passed by reference

    网上查到资料有这么一句话:

    在php5.3以上版本会出这个问题,应该也和php的配置有关,只要把这一句拆成两句就没有问题了。因为array_walk的参数是引用传递的,5.3以上默认只能传递具体的变量,而不能通过函数返回值。当然你也可以修改php.ini 里的 error_reporting = E_ALL | E_STRICT,但这终究不符合规范。

        
         $suffix =  array_pop(explode(".",$file_name));

    为什么高版本的会这样子限制呢?

    我去看手册中的函数原型:

    mixed array_pop ( array &$array )
     
    bool array_walk ( array &$array , callable $funcname [, mixed $userdata = NULL ] )
     
    &符号指定了变量传入进去,是引用方式传递。
     
    改为:
         $file_name_arr  = explode(".",$file_name);
         $suffix =  array_pop($file_name_arr);
     
    就可以。
     
    实际上也只是报出一个警告。不是致命错误。正常结果是能够得到。比如这里得到文件名的后缀,是正常的。
  • 相关阅读:
    其它运算符
    位运算符
    赋值运算符
    逻辑运算符
    关系运算符
    理解twisted中的reactor和deferred(一)
    修改 Django Administration
    celery 调用scrapy
    flower 时区设置
    Python 过滤HTML实体符号简易方法
  • 原文地址:https://www.cnblogs.com/wangtao_20/p/4766656.html
Copyright © 2011-2022 走看看