php函数的传值如果需要引用传递注意的细节
2015-08-28 15:26
513 查看
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
bool array_walk ( array
&符号指定了变量传入进去,是引用方式传递。
改为:
$file_name_arr = explode(".",$file_name);
$suffix = array_pop($file_name_arr);
就可以。
实际上也只是报出一个警告。不是致命错误。正常结果是能够得到。比如这里得到文件名的后缀,是正常的。
网上查到资料有这么一句话:
在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);
就可以。
实际上也只是报出一个警告。不是致命错误。正常结果是能够得到。比如这里得到文件名的后缀,是正常的。
相关文章推荐
- PHPcms 系统简单使用
- PHP运行出现Notice : Use of undefined constant 的完美解决方案
- php导入导出excel实例
- window下如何实现定时执行php脚本
- php导出excel(多种方法)
- laravel-v5.1数据库连接文件是.env文件
- PHP面向对象之朝花夕拾
- php的表单提交之上传文件
- laravel的解决方案
- php内容嵌入html
- Laravel 4 系列入门教程(一)
- PHP 的 抽象类 abstract 和 接口 interface
- Yii GridView Ajax 刷新
- laravel 分页
- php错误:You don't have permission to access / on this server.
- php的一些心得
- PHP下拉框内容随单选框内容变化
- 一个简单的PHP在线书签系统
- php.ini中时区设置不成功解决方法
- thinkphp U方法 跨入口生成连接