【问题标题】:PHP - isse array optimizationPHP -isse 数组优化
【发布时间】:2016-01-14 11:47:13
【问题描述】:

从优化和最佳实践的角度来看,我应该在设置数组键之前检查它是否已设置。

我很乐意覆盖该值 - 所以两者都适合我的目的。

在这个简单的例子中,我知道我的数组应该有什么值,并且我没有问题覆盖一个键值。

    $array = array(
        'A' => 'B'
    );

    $key = 'A';
    $value = 'B';

    //...

选项 1。

    //...

    if(!isset($array[$key])) {
        $array[$key] = $value;
    }

选项 2。

    //...

    $array[$key] = $value;

调用 isset 或在数组中设置值是否有更多开销?

【问题讨论】:

    标签: php arrays optimization isset


    【解决方案1】:

    嗯,我不知道很多时间细节,但如果有差异,我非常怀疑它会不会很明显。如果我们从逻辑的角度来看,两者比较:

    1) 值存在吗? 2a) 如果是,覆盖。 2b)如果没有,请跳过。

    1)覆盖值。

    参数可以采用任何一种方式,因为资源被用于检查然后覆盖。所以实际上,您正在执行与第二个选项相同的步骤,但添加了一个 if 语句。按照这种逻辑,只需覆盖必须更快。有意义吗?

    使用我们的第二个选项,我们所做的就是覆盖。首先,我们检查 AND 覆盖。因此,如果您确定您将主要是压倒一切,那么第二个选项可能是最好的。如果您认为值会不断变化,请使用 if 语句。

    您必须进行一些深入的研究才能找到确切的时差。

    希望我能帮上忙。

    【讨论】:

    • 谢谢。我想了很多,但我不确定。查看其他人的代码并试图弄清楚他们为什么要这样做。
    猜你喜欢
    • 2023-03-08
    • 2012-08-15
    • 1970-01-01
    • 2022-08-11
    • 2011-09-14
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 2019-11-02
    相关资源
    最近更新 更多