我在读这个问题看到了这一行:
if ($a == $b) { return true } else { return false }
这让我想知道,将未知类型的变量(可以是string,也可以是int;谁知道?谁在乎?)转换为布尔值的最佳方法是什么?
当然,if($var){return true;}else{return false;}
会起作用,但我认为会返回$var?真:假
可能更好。
就这一点而言:
return $var && true
return $var || false
return !empty($var)
都可能更好,但有没有最好的方式来铸造bool?更重要的是,是什么让它变得最好?
编辑以澄清:
写这篇文章的目的并不是为了全面列出转换为布尔值的方法。我的问题是,特别是关于显式选角。在我了解empty
之前,我使用了isset($var)&&$var
,因为它可以防止在未声明的变量上引发错误。现在我使用<code>!空($var),因为它的键入速度更快。
<代码>!空具有(dis)优点,即在未定义变量时不会引发任何E_NOTIFE
错误。如果您重新检查$_GET
或$SESESSION
变量,这可能被认为是好的,对于大多数其他变量,我认为这可能被视为坏的,因为它会隐藏变量未初始化的问题,而变量本应初始化。
I was curious as to whether other developers have another way of doing things that I hadn t known about.