Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.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 使用1个或多个项初始化数组的最佳方法_Php - Fatal编程技术网

Php 使用1个或多个项初始化数组的最佳方法

Php 使用1个或多个项初始化数组的最佳方法,php,Php,我将变量的值设置为数组 根据某些条件,我必须初始化 array('a', 'b'); 或 那么最好的方法是什么呢 我们应该写信吗 $a = array('a', 'b'); if($b > 0) { $a[] = 'c'? } 或 首先,我们应该定义什么是“最好的”。对我来说最好的是: 执行速度快 以“正确”的方式完成 容易阅读 与执行速度相比,两者几乎相同(我用1mil迭代做了一个快速测试),所以这里没有明显的赢家 这两个示例都很容易阅读,但是我将坚持使用第一个示例,因

我将变量的值设置为数组

根据某些条件,我必须初始化

array('a', 'b');

那么最好的方法是什么呢

我们应该写信吗

$a = array('a', 'b');

if($b > 0) {

    $a[] = 'c'?

}


首先,我们应该定义什么是“最好的”。对我来说最好的是:

  • 执行速度快
  • 以“正确”的方式完成
  • 容易阅读
  • 与执行速度相比,两者几乎相同(我用1mil迭代做了一个快速测试),所以这里没有明显的赢家

    这两个示例都很容易阅读,但是我将坚持使用第一个示例,因为如果出于某种原因要求您向数组中添加“a1”,那么您将不得不更改一行代码,而不是两行代码

    编辑:这是我运行的代码($b=0和$b=1)没有太大变化: EDIT2:看来我的第一个基准是错误的。这里是第二个只进行一次迭代的基准。显然,第二个代码块执行得更快

    $b=1;
    $t=微时间(真);
    $a=数组('a','b');
    如果($b>0){
    $a[]='c';
    }
    printf(“%f\n”,微时间(真)-$t);
    $t=微时间(真);
    如果($b>0){
    $a=数组('a','b','c');
    }否则{
    $a=数组('a','b');
    $a[]='c';
    }
    printf(“%f\n”,微时间(真)-$t);
    
    输出:

    0.000017
    0.000003
    

    在国际海事组织,第一种选择是最好的,因为它遵循干涸和分而治之的原则


    这表明第一种方法平均只慢13.5%。

    请不要这样基准测试,因为它非常不一致。第一种方法是
    3.7593920230865
    ,第二种方法是
    1.9740960597992
    。这样做,可以确保以分布式方式使用CPU周期,而不是不要在CPU更忙的时候运行第一个或第二个实验,而在CPU空闲的时候运行另一个实验。@mspasov:否则,你应该尽可能多地运行迭代,以获得一致的平均值。谢谢你的基准测试。我也更喜欢第一个varianat,它确实更干燥。
    if($b > 0) {
    
        $a = array('a', 'b', 'c');
    
    } else {
    
        $a = array('a', 'b');
    
    }
    
    0.000017
    0.000003