我有以下一行:
$this->magicQuotes = (bool) get_magic_quotes_gpc();
我正在将get_magic_quotes_gpc()
存储在我的对象中,因为我在生成SQL时多次使用它。我也把它变成了一个布尔。
我想知道将它转换为bool是否值得。我的主要原因是速度,因为检查的声明是:
if ($this->magicQuotes) { ... }
如果测试严格来说是一个bool值,我认为会稍快一些。
是否有任何理由说这不是更快或是否有其他原因不这样做?
答案 0 :(得分:2)
如果你没有转换为bool
,那么在评估if语句中的表达式时,PHP必须转换为bool
。因此,无论您是否明确地转换它,它都会在某个时间转换为bool
,而我更喜欢让您输入更少的方式。
此外,通过这种微小的优化,您应该更担心哪个更易读,而不是担心哪个比另一个快0.0 ... 01秒。
答案 1 :(得分:1)
它不应该更快......取决于php如何在最后转换bool和int。
通常,在x86上,if(foo)
中的bool和int都是对零的测试,并相应地跳转。所以演员不应该提高表现。