php函数的传值如果需要引用传递注意的细节

简介: Strict standards: Only variables should be passed by reference 网上查到资料有这么一句话: 在php5.3以上版本会出这个问题,应该也和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);
 
就可以。
 
实际上也只是报出一个警告。不是致命错误。正常结果是能够得到。比如这里得到文件名的后缀,是正常的。

 

目录
相关文章
|
28天前
|
数据库连接 PHP 数据库
PHP的引用操作符& 的使用及注意事项
PHP的引用操作符& 的使用及注意事项
17 0
|
4月前
|
PHP
PHP 中的引用赋值运算符
PHP 中的引用赋值运算符
|
4月前
|
PHP
PHP 变量通过引用传递
PHP 变量通过引用传递
|
4月前
|
PHP
PHP实现自制随机图片API- 调用文件夹和引用网络图片
PHP实现随机图片API- 调用文件夹和引用网络图片
46 0
|
5月前
|
存储 SQL 前端开发
PHP对象的引用及对象优化策略
当PHP5的出现面向对象思想,我们在构造PHP程序时候就有了对程序的新的总结,把对象特性封装到类,特别是当PHP框架应用到实际项目中,构造类的对象和调用类对象出现了很大的讲究。
32 0
|
11月前
|
Java PHP C语言
关于php的引用
关于php的引用
92 0
|
Unix PHP
搞定PHP面试 - 深入了解引用
1. 什么是引用 在 PHP 中引用是指用不同的名字访问同一个变量内容。 PHP 中的变量名和变量内容是不一样的, 因此同样的内容可以有不同的名字。 最接近的比喻是 Unix 的文件名和文件本身——变量名是目录条目,而变量内容则是文件本身。引用可以被看作是 Unix 文件系统中的硬链接。 PHP 中的引用并不像 C 的指针:例如你不能对他们做指针运算。引用并不是实际的内存地址,而是符号表别名。
|
Serverless PHP 数据格式
函数计算PHP 变量不存在无法引用和判断的解决方案
最近研究了函数计算,很不错的服务,总结一个php存在的一个问题,为以后的小白们避免同样的错误。 <?php use RingCentral\Psr7\Response; function initializer($context) { echo 'initializing' .
15693 0
|
PHP
【从入门到放弃-PHP】foreach 引用的坑
背景描述 先看一段代码。 $arr = [ 'jack' => '20', 'tom' => '21', 'marry' => '54', 'less' => '23' ]; foreach ($arr as &$val) { echo $val; .
1848 0
相关产品
云迁移中心
推荐文章
更多