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 语句。
您将需要进行一些深入的研究才能找到确切的时差。
希望我有所帮助。
从优化和最佳实践的角度来看,我应该在设置数组键之前检查它是否已设置。
我很乐意覆盖该值 - 所以两者都适合我的目的。
在这个简单的例子中,我知道我的数组应该有什么值,我可以毫无问题地覆盖键值。
$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 语句。
您将需要进行一些深入的研究才能找到确切的时差。
希望我有所帮助。