2009-01-24 66 views
0

我有以下行:在PHP中检查bool vs int是否有任何价值?

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

这是我在get_magic_quotes_gpc()其存储在我的对象,因为它是用很多次,因为我生成SQL。我也将它转换为布尔。

我想知道是否值得将它转换为布尔值。我主要的原因是速度,检查的说法是:如果测试是一个严格的布尔值

if ($this->magicQuotes) { ... } 

,我觉得这是稍快。

是否有任何理由,这不是更快,或者如果有任何其他原因不这样做?

回答

2

如果您没有转换为bool,则在评估if语句中的表达式时,PHP将不得不转换为bool。因此,无论您是否明确转换它,它都会一次或另一次转换为bool,而我更倾向于让您输入更少的方式。

此外,通过这种微小的优化,您应该更担心哪些比可读性更强,而不是担心哪个比其他0.0 ... 01秒快。

1

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

通常,在x86上,bool和int都可以在if(foo)中进行测试,然后相应跳转。所以演员不应该改善表演。

相关问题