PHP - isse数组优化

PHP - isse array optimization

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

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

在这个简单的例子中,我知道我的数组应该有什么值,我可以毫无问题地覆盖键值。

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

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

    //...

选项 1.

    //...

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

选项 2.

    //...

    $array[$key] = $value;

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

好吧,我不太了解很多细节,但如果有差异,我非常怀疑它是否会引起注意。如果我们仅从逻辑的角度来看这两个比较:

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

1)覆盖值。

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

对于我们的第二个选项,我们所做的就是覆盖。首先,我们检查并覆盖。因此,如果您确定大部分情况下都会被覆盖,那么第二种选择可能是最好的。如果您认为这些值会持续变化,那么请使用 if 语句。

您将需要进行一些深入的研究才能找到确切的时差。

希望我有所帮助。