我有一个PHP三元操作如下不起作用:只有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三元操作员可以在事实上的返回值比“真”或“假”其他: 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控制台,看看出了什么问题。这不会是三元运营商的错。 – Lucero 2012-01-02 18:30:50
你的问题与三元运算符无关,你没有正确地关闭你的字符串。查看phihag的答案。 – Deleteman 2012-01-02 18:32:02