考虑以下代码:
<?php
$arr = array('fruit' => 'apple', 'veggie' => 'carrot');
define('fruit', 'veggie');
print "Hello {$arr['fruit']}"; //This works
print "Hello $arr['fruit']"; //This doesn't work
?>
我无法理解为什么第二个无法工作,并给出如下解析错误:
**Parse error:** syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting '-' or identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING)
同样,如果我写上面的程序如下,这是如果我添加模具;在第一个执行行之后,然后将非工作行静止,我得到了相同的错误。
<?php
$arr = array('fruit' => 'apple', 'veggie' => 'carrot');
define('fruit', 'veggie');
print "Hello {$arr['fruit']}";
die;
print "Hello $arr['fruit']";
?>
我一点也不明白。它应该打印出第一行,因为我正在死后的代码。编译时不应该考虑死后的一行,但它正在考虑并禁止执行第一行。