双引号里面的变量前后该不该加{}




请注意一个问题 ,我在很多同学的程序中都发现,双引号里面的变量前后不加{}
比如有的同学写"$abc"或者"$abc[abc]",甚至还有这样写的$abc[abc]。
必须强调这样的写法是有隐患的.
我举一个例子:
<?
$c_id = 179
$msg = "您好,[color=#ff1200]{$c_id}[/color]号活动今日即将上线:/n详情请查收邮件。";
 echo $msg;
 ?>

输出
您好,179号活动今日即将上线: 详情请查收邮件。
 
 而
<?
 $c_id = 179
$msg = "您好,[color=#ff1200]$c_id[/color]号活动今日即将上线:/n详情请查收邮件。";
echo $msg;
 ?>

 
输出
 您好,: 详情请查收邮件。

php虽然会自动解析双引号里面的变量,但是它会认为“$abc中国人”
是一个变量,因为php允许中文变量,即你可以定义
<?
$名字 = 'machine_马';
 ?>

 
另外$abc[aaa]的写法也是错误的
 php首先会把aaa当作常量来执行,当他发现找不到对应值的时候
 才把aaa解释成字符串  因此 如果事先定义了常量aaa那么这里就会是一个bug
例如
<?
 define('aaa', '123');

 $abc['aaa'] = '123';
$abc['123'] = '456';

 var_dump($abc['aaa']);
 var_dump($abc[aaa]);
?>
 
 
输出
string(3) "123"
string(3) "456"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值