Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-isse数组优化_Php_Arrays_Optimization_Isset - Fatal编程技术网

PHP-isse数组优化

PHP-isse数组优化,php,arrays,optimization,isset,Php,Arrays,Optimization,Isset,从优化和最佳实践的角度来看,我应该在设置阵列键之前检查阵列键是否已设置 我很乐意覆盖该值,因此两者都适合我的目的 在这个简单的示例中,我知道数组应该具有哪些值,并且覆盖键值没有问题 $array = array( 'A' => 'B' ); $key = 'A'; $value = 'B'; //... 备选案文1 //... if(!isset($array[$key])) { $array[

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

我很乐意覆盖该值,因此两者都适合我的目的

在这个简单的示例中,我知道数组应该具有哪些值,并且覆盖键值没有问题

    $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语句

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


希望我能帮忙。

谢谢。我也这么想,但我不确定。看看其他人的代码,并试图找出他们为什么第一次这么做。