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程序设计有所帮助。

相关文章

PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案

漏洞说明 不得不再次吐槽一下exploit-db对exp审核的质量,这个exp仍然不能触发漏洞,修改第一个参数则可以触发,我给出的poc是一个可以触发php漏洞的,问题出现在php_ti...

php中10个不同等级压缩优化图片操作示例

本文实例分析了php中10个不同等级压缩优化图片操作。分享给大家供大家参考,具体如下: 今天找到一个php写的压缩图片程序,可以分10个等级(0-9)来压缩,0等级时压缩比率不是很大,图...

8个PHP数组面试题

网上找的PHP数组题,准备自己做一遍并且记录下来。 1.写函数创建长度为10的数组,数组中的元素为递增的奇数,首项为1. 复制代码 代码如下: <?php  &n...

PHP微信发送推送消息乱码的解决方法

PHP微信发送推送消息乱码的解决方法

先用urlencode是因为中文在数组转json时会被编码为unicode,微信接口无法识别,所以得在json_encode前先来个编码,等转换后再用urldecode转回来,这样传输...

php将字符串全部转换成大写或者小写的方法

本文实例讲述了php将字符串全部转换成大写或者小写的方法。分享给大家供大家参考。具体分析如下: php中可以通过strtolower和strtoupper两个函数将字符串中的每个英文字符...