我有一個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