$arr['key'] 与 $arr["key"] 与 $arr[key]的差别:

一、$arr['key'] 与 $arr["key"] 与 $arr[key]的差别:

以上三种方式主要是通过字符串类型数组下标即数组键访问数组的值,如果数组下标为索引类型即键值为数字则无需注意.

1,$arr['key'] 单引号模式被直接解析为$arr的值;

2,$arr["key"]双引号模式会首先分析"key"字符串内部是否包含 PHP变量,然后再解析为$arr的值;

3,$arr[key]没有任何引号会先分析局部作用域内有没有key常量定义(即有无define(‘key’,'val’)),

如果有则使用局部key常量代表的常量值作为数组键值;否则继续分析全局作用域内有没有key常量定义,如果有则使用全局key常量代表的常量值作为数组键值;否则内部转换key

为’key’字符串标量值并抛出E_NOTICE异常。

二、$arr["$str_key"] 与 $arr[$str_key]的差别:

此方式亦为通过字符串类型数组下标访问数组的值,如果数组下标为索引类型即数字则无需注意,其实这里无需额外添加双引号以表示$str_key变量代表的是字符串值,即$arr["$str_key"] === $arr[$str_key],代码如下:

<?php 

define('constant','arr1');

$constant = 'arr2';

$variable = 'arr1';

$arr = array(

'arr1'=>'arr1',

'arr2'=>'arr2',

'arr3'=>'arr3',

);

echo $arr['arr1'],'<br/>',$arr["$variable"],'<br/>',$arr[constant],'<br/>',$arr[$constant];

?>




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值