【发布时间】:2012-01-02 18:23:12
【问题描述】:
我有一个php三元运算符如下不起作用:
var newLoginTxt = <?=$_SESSION['loginStatus']? 'Logged in' : 'Login'?>;
alert("About to set the navbar's login text to: " + newLoginTxt);
根本没有出现警告框。
但这确实有效:
var curLoginStatusSessionVar = <?=$_SESSION['loginStatus']? 'true' : 'false'?>;
alert("Testing: " + curLoginStatusSessionVar);
出现警告框并显示“正在测试:假”
我有以下文章似乎在说 php CAN 中的三元运算符实际上返回的值不是“真”或“假”: http://davidwalsh.name/php-shorthand-if-else-ternary-operators
好吧,更奇怪的是——在下面的代码中,为什么第一个“测试”警告框出现,然后第二个“测试”警告框没有出现?这是完全相同的代码:
// THIS "Testing" ALERT BOX APPEARS FINE**
var curLoginStatusSessionVar = <?=$_SESSION['loginStatus']? 'true' : "false"?>;
alert("Testing: " + curLoginStatusSessionVar);
var newLoginTxt = <?=$_SESSION['loginStatus']? 'Logged in' : 'Login'?>;
alert("About to set the navbar's login text to: " + newLoginTxt);
// THIS IDENTICAL "Testing" ALERT BOX NEVER APPEARS**
curLoginStatusSessionVar = <?=$_SESSION['loginStatus']? 'true' : 'false'?>;
alert("Testing" + curLoginStatusSessionVar);
【问题讨论】:
-
使用客户端工具查看生成的输出并打开 JS 控制台,看看哪里出了问题。这不会是三元运算符的错。
-
您的问题与三元运算符无关,您没有正确关闭字符串。查看 phihag 的答案。
标签: php javascript