PHP检查bool与int有什么价值吗?

时间:2009-01-24 01:08:59

标签: php boolean magic-quotes

我有以下一行:

$this->magicQuotes = (bool) get_magic_quotes_gpc();

我正在将get_magic_quotes_gpc()存储在我的对象中,因为我在生成SQL时多次使用它。我也把它变成了一个布尔。

我想知道将它转换为bool是否值得。我的主要原因是速度,因为检查的声明是:

if ($this->magicQuotes) { ... }
如果测试严格来说是一个bool值,我认为会稍快一些。

是否有任何理由说这不是更快或是否有其他原因不这样做?

2 个答案:

答案 0 :(得分:2)

如果你没有转换为bool,那么在评估if语句中的表达式时,PHP必须转换为bool。因此,无论您是否明确地转换它,它都会在某个时间转换为bool,而我更喜欢让您输入更少的方式。

此外,通过这种微小的优化,您应该更担心哪个更易读,而不是担心哪个比另一个快0.0 ... 01秒。

答案 1 :(得分:1)

它不应该更快......取决于php如何在最后转换bool和int。

通常,在x86上,if(foo)中的bool和int都是对零的测试,并相应地跳转。所以演员不应该提高表现。

相关问题