2016-04-05 62 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