在5.4之前我们直接获取数组的值得方法如下

<?php$str = 'a;b;c;d';list($value) = explode(';',$str);echo $value;

  

结果为: a

但是5.4的Array derenferencing 是什么意思呢?如下

<?php$str = 'a;b;c;d';$value = explode(';',$str)[0];echo $value;

  

结果同为:a

其实很简单,但是我们运用当中可能会出现一些的问题。比如

<?phpclass Example{private $value = [];public function getValue(){return $this->value;}}$example = new Example;$example->getValue()['test'] = 'test';echo $example->getValue()['test'];

  

会出现如下报错

Notice: Undefined index: test in D:\Php\xampp\htdocs\test\PHP - 5.x\example.php on line 17

上面的代码混淆了返回值和返回引用,在PHP中,除非你显示的指定返回引用,否则对于数组PHP是值返回,也就是数组的拷贝。因此上面代码对返回数组赋值,实际是对拷贝数组进行赋值,非原数组赋值。

下面是一种可能的解决办法,输出拷贝的数组,而不是原数组:

$vals = $config->getValues();
$vals['test'] = 'test';
echo $vals['test'];  //test

  

如果你就是想要改变原数组,也就是要反回数组引用,就是显示指定返回引用即可

<?phpclass Example{private $value = [];public function &getValue(){return $this->value;}}$example = new Example;$example->getValue()['test'] = 'test';echo $example->getValue()['test'];

上面的例子输出:test

转载于:https://www.cnblogs.com/uduemc/p/3998750.html

PHP - 5.4 Array dereferencing 数组值相关推荐

  1. java求最小步数,使数组值相等的最小步数 Minimum Moves to Equal Array Elements

    问题: Given a non-empty integer array of size n, find the minimum number of moves required to make all ...

  2. 【C 语言】数组 ( 验证二维数组内存是线性的 | 打印二维数组 | 以一维数组方式打印二维数组 | 打印二维数组值和地址 )

    文章目录 一.验证二维数组内存是线性的 1.打印二维数组 2.以一维数组方式打印二维数组 3.打印二维数组值和地址 二.完整代码示例 一.验证二维数组内存是线性的 验证二维数组内存是线性的 : 验证方 ...

  3. 【MATLAB】数据类型 ( 元胞数组 | 单位阵 | 幻方 | 结构体 | 元胞数组值获取 )

    文章目录 一.元胞数组 1.定义元胞数组 2.生成单位阵 3.生成幻方 4.元胞数组元素赋值 5.元胞数组元素赋值 二 二.元胞数组 1.定义结构体 2.小括号获取元胞数组子数组 3.大括号获取元胞数 ...

  4. ajax使用json数组,使用JSON传递数组值的Ajax

    我有一个复选框和提交按钮表格的html表单. 当按钮被点击时,我打电话和ajax_function在那里我想传递 的数据到另一个php页面.我不知道如果我做了什么,到目前为止是正确的,所以我可以pro ...

  5. 如何统计php数组值的和,php数组键值操作和数组统计函数-函数

    1.数组函数//作用:提供了很多官方写的很多有用的代码段,提高编写速度 1)数组的键值操作函数 array_values();//获取数组中的值 array_keys();//获取数组中的键 in_a ...

  6. php2个数字拼接,PHP合并2个数字键数组值示例详解

    这篇文章主要介绍了PHP简单实现合并2个数字键数组值的方法,涉及php针对数组的遍历.判断.转换等相关操作技巧,需要的朋友可以参考下 本文实例讲述了PHP简单实现合并2个数字键数组值的方法.分享给大家 ...

  7. php接收get数组数据,php-如何从wordpress数据库中获取数组值get_results

    尝试从我的MySQL查询中回显数组值(在Wordpress片段内部) function get_customer_gain() { global $wpdb; $users = $wpdb->g ...

  8. php索引数组转键数组,PHP-Codeigniter:如何从指定索引转换数组值?

    我有这样的数组 array(2) { [0]=> object(stdClass)#20 (4) { ["id"]=> string(1) "1" ...

  9. php调用其他文件数组的值,PHP递归调用数组值并用其执行指定函数

    0 PHP递归调用数组值并用其执行指定函数 围观:259℉更新时间:2014-10-29 function function_deep($function,$value) { try { if(!fu ...

最新文章

  1. R语言使用ggplot2包geom_jitter()函数绘制分组(strip plot,一维散点图)带状图(自定义色彩、形状)实战
  2. (转)Ubuntu10.04各文件夹的作用
  3. .net 面试题系列文章三(附答案)
  4. StarUML 逆向工程插件加载失败问题解决
  5. 直流降压的简单方法_量血压的重大误区和简单的降压方法,尽快转告身边人!...
  6. JAVA每个初学者都应该搞懂的问题 还可以比较基础
  7. mysql监控sql_如何实时监控mysql中的SQL语句的执行情况
  8. 那些html编辑器有代码片段6,VS Code 折腾记 - (6) 基本配置/快捷键定义/代码片段的录入(snippet)...
  9. Arcgis字段计算器实现自动编码
  10. Linux下载 安装cadenceIC617
  11. 如何用OpenCV给图片加上文字?
  12. 【着色器实现Shine局部或整体扫光效果_Shader效果第三篇】
  13. 【Tools/PC】如何在一台电脑上实现双屏幕显示?
  14. SpringBoot的test测试类报com.netflix.discovery.shared.transport.TransportException异常
  15. FCC 中级算法题 罗马数字转换器
  16. spring事务管理tx:Advice详解
  17. windows7 中pkeyconfig.xrm-ms文件无法删除解决办法
  18. H5 捕鱼游戏搭建教程
  19. 高性能计算服务器8280,AMD秀实力:第二代霄龙64核性能是英特尔Xeon Platinum8280两倍...
  20. ubuntu下改变桌面图标大小方法

热门文章

  1. springcloud服务熔断和服务降级的自我理解
  2. the coons patch
  3. 计算机组成原理中的直接映像,计算机组成原理cache存储器的直接映像与变换.doc...
  4. 课程体系包括哪些要素_利润的构成要素包括哪些部分
  5. mysql 外键 失败_存在外键时,MySQL 5.5外键约束失败
  6. android 工程搭建,Android ApiDemo示例工程的创建
  7. 分配菜品类别: 展开 收起_运营技巧:让产品数据决定菜品的去与留
  8. 安卓开发mysql数据库_Android编程之数据库的创建方法详解
  9. 线路板铜厚测试软件,厚铜线路板的铜厚是如何实现的
  10. 玩转 SpringBoot 2 之整合 JWT 下篇