Echoing session variables in php
本问题已经有最佳答案,请猛点这里访问。
我知道在PHP中,当我使用echo时,可以将变量名放在带引号的字符串中,但显然我不能用会话变量来实现这一点。有人能解释为什么吗?
下面是代码,其中"冒犯"的PHP被注释掉:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php session_start(); $test = 100; $_SESSION['test'] = 200; ?> <html> <head> Test </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> |
输出结果如下:
1 2 3 4 5 | 100 100 200 |
但如果我取消对违规代码行的注释:
1 2 3 | <p> <?php echo("$_SESSION['test']"."<br />");?> </p> |
我没有得到输出和以下错误:
1 | Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in - on line 14 |
所以我可以继续我的快乐方式知道如何正确地做(只是保持会话变量在双引号之外),但我真的想知道为什么这对会话变量不起作用。
谢谢!
在双引号字符串中,必须将复杂变量(数组或对象属性)括在
1 2 3 | <p> <?php echo("{$_SESSION['test']}"."<br />");?> </p> |
这不是