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