请注意一个问题 ,我在很多同学的程序中都发现,双引号里面的变量前后不加{}
比如有的同学写"$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"