我知道在PHP中,当我使用echo时,我可以在引号字符串中放置变量名,但是显然我不能这样做以使用会话变量。有人能解释一下为什么吗?
以下是代码,其中“冒犯”的PHP被注释掉:
<?php
session_start();
$test = 100;
$_SESSION['test'] = 200;
?>
<html>
<head>
<title>Test</title>
</head>
<body>
<p><?php echo($test."<br />");?></p>
<p><?php echo("$test"."<br />");?></p>
<p><?php echo($_SESSION['test']."<br />");?></p>
<p><?php //echo("$_SESSION['test']"."<br />");?></p>
</body>
</html>
输出结果如下:
100
100
200
但是,如果我取消注释有问题的代码行:
<p><?php echo("$_SESSION['test']"."<br />");?></p>
我遇到了没有输出的问题,同时出现了下面的错误信息:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in - on line 14
因此我可以放心地继续使用正确的方式来操作(将会话变量放在双引号外面),但我真的很想了解为什么这对于会话变量不起作用。
谢谢!