0

我有以下行:

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

get_magic_quotes_gpc()将它存储在我的对象中,因为它在我生成 SQL 时被多次使用。我也将其转换为布尔值。

我想知道将其转换为布尔值是否值得。我的主要原因是速度,因为检查的语句是:

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

如果测试严格是布尔值,我认为会稍微快一些。

是否有任何原因它不更快,或者是否有任何其他原因不这样做?

4

2 回答 2

2

如果您不转换为,PHP在评估 if 语句中的表达式时无论如何bool都必须转换为。bool因此,无论您是否明确转换它,它都会bool在某个时间或另一个时间转换为,我更喜欢让您输入更少的方式。

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

于 2009-01-24T01:19:14.230 回答
1

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

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

于 2009-01-24T01:21:09.920 回答