2016-04-05 91 views
0

我不知道數組節點的比較操作如何與相同數組節點的「true」賦值相關。這是三元語法的一些替代用法嗎?無論是解釋還是鏈接到PHP引用(我甚至不知道如何搜索此內容)都會有所幫助。提前致謝。這是什麼語法結構,它是如何工作的?

// RESOLVE myvar TO BOOLEAN 
$atts['myvar'] = 'true' == $atts['myvar']; 
+0

該註釋告訴你代碼在做什麼:將myvar解析爲布爾值,儘管它不是將它解析爲_true_布爾值,而是將其解析爲字符串「true」。如果你問我,可怕的代碼是多少。 'settype($ atts ['myvar'],'boolean')'會更好。 –

+0

@MartinBean它正確地解析爲常規布爾值。這遠不是我見過的最好的代碼,但我也不會說它是可怕的。 –

+0

感謝你們倆。 – fslap

回答

2

你應該像閱讀:

$atts['myvar'] = ('true' == $atts['myvar']); 

(節省支架是永遠值得一分錢)。當運行時,它將比較$atts['myvar']的實際內容與字符串true(4個字母),然後用$atts['myvar']進行比較,其結果將爲布爾型。如果它等於字符串「真」,那麼結果是布爾型true,對於其他任何東西它將變成布爾值false。換句話說,它將「字符串布爾」轉換爲常規布爾值。

+0

非常感謝您的簡潔迴應。這有很大的幫助。 – fslap