php双引号花括号访问数组元素几种方法和区别

1> 数组变量未用双引号包括时

在正常情况下,数组变量没有被双引号包围时,是否给索引字符串加上单引号输出结果都一致时apple,但是当定义一个与索引字符串fruit同名的常量时,未加单引号的索引字符串输出结果就成了carrot,而加上单引号还是apple

<?php
$_arr = array('fruit'=>'apple','veggie'=>'carrot');
define('fruit','veggie');

//1.数组变量未用双引号包括时
print_r($_arr['fruit']); 
//apple 索引字符串加单引号表示字符串本身

print_r($_arr[fruit]);	
//carrot 索引字符串未加单引号表示常量,当常量未定义时则解析为字符串,等效于加上单引号


//2. 数组变量用双引号包括时
print_r("Hello $_arr[fruit]") ;  
// Hello apple  索引字符串不加单引号表示字符串本身

print_r("hello  {$_arr[fruit]}");	
//hello carrot  数组变量加上花括号表示与字符串同名常量

print_r("hello {$_arr['fruit']}");	
//hello apple 索引字符串加上单引号且数组变量加上花括号表示字符串本身

print_r("$arr['fruit']");  
//报错   索引字符串加上单引号且数组变量未加上花括号
?>

2 >数组变量用双引号包括时

第一种 写法索引字符串不添加任何引号,此时表示获取索引为字符串fruit的数组元素,输出apple。

第二种 写法索引字符串也没有添加任何引号,同时将数组变量用一对花括号{ }给包了起来,此时fruit实际上表示一个常量,而不是一个字符串,因此表示获取索引为fruit常量值的数组元素,常量fruit的值是veggie,所以输出carrot。

第三种 写法是引用字符串不但添加了单引号,同时也将数组变量用一对花括号{ }给包了起来,此时表示获取索引为字符串fruit的数组元素,输出apple。

第四种 写法是索引字符串加上单引号且数组变量未加上花括号,为错误写法,报错:Parse error: parse error, expecting T_STRING' or T_VARIABLE' or T_NUM_STRING'

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值