【问题标题】:Is there any value in PHP checking a bool vs an int?PHP 检查 bool 和 int 有什么价值吗?
【发布时间】:2010-10-03 06:44:19
【问题描述】:

我有以下行:

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

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

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

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

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

是否有任何理由不这样做,或者是否有任何其他理由不这样做?

【问题讨论】:

    标签: php boolean magic-quotes


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2016-07-08
        • 1970-01-01
        • 2011-09-19
        • 2011-03-02
        • 1970-01-01
        • 1970-01-01
        • 2013-10-31
        • 2018-08-29
        • 2023-04-08
        相关资源
        最近更新 更多