php函数传值的引用传递注意事项分析

yipeiwu_com7年前PHP代码库

本文实例讲述了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);

就可以。

实际上也只是报出一个警告。不是致命错误。正常结果是能够得到。比如这里得到文件名的后缀,是正常的。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数学运算技巧总结》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》、《php正则表达式用法总结》、及《php常见数据库操作技巧汇总

希望本文所述对大家PHP程序设计有所帮助。

相关文章

PHP开发需要注意的安全问题

作为PHP程序员,特别是新手,对于互联网的险恶总是知道的太少,对于外部的入侵有很多时候是素手无策的,他们根本不知道黑客是如何入侵的、提交入侵、上传漏洞、sql 注入、跨脚本攻击等等。作为...

php使用socket调用http和smtp协议实例小结

本文实例讲述了php使用socket调用http和smtp协议。分享给大家供大家参考,具体如下: socket发送HTTP请求 http协议请求报文格式 get ## 请求方法 请求...

10个简化PHP开发的工具

10个简化PHP开发的工具

本文介绍了可以帮助简化 PHP 开发的10个项目,包括框架,类库,工具,代码。 1.CakePHP Development Framework CakePHP 是一个 PHP 的快速开...

攻克CakePHP(PHP中的Ruby On Rails框架)图文介绍第1/2页

攻克CakePHP(PHP中的Ruby On Rails框架)图文介绍第1/2页

CakePHP框架首页: http://www.cakephp.org/ 下载后导入工程中,目录结构如下图(使用版本:1.1.19.6305) 搭建PHP环境,这里使用了AppServ2...

PHP中的Iterator迭代对象属性详解

PHP中的Iterator迭代对象属性详解

前言 foreach用法和之前的数组遍历是一样的,只不过这里遍历的key是属性名,value是属性值。在类外部遍历时,只能遍历到public属性的,因为其它的都是受保护的,类外部不可见。...