Sunday, August 19, 2018

Echoing session variables in php




I know that in php I can put a variable name inside a quoted string when I use echo, but I apparently can't do this with a session variable. Can anyone explain why?



Here is the code, with the "offending" php commented out:




session_start();
$test = 100;
$_SESSION['test'] = 200;
?>


Test



");?>


");?>


");?>


");?>






And the output looks like this:




100

100

200


But if I uncomment the offending code line:




  

");?>




I get no output and the following error:



Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in - on line 14


So I can go on my merry way knowing how to do it correctly (just keep the session variable outside of the double quotes), but I would really like to understand why this doesn't work for session variables.




Thanks!


Answer



Inside a double-quoted string you must enclose a complex variable (array or object property) in {}:



");?>




This isn't an issue with $_SESSION specifically, but any array accessed by quoted keys. Note, that you can include a numerically indexed array value with wrapping in {}, as in "echo $array[2] is two";


No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...