PHP循環体は配列に値を与える

4021 ワード

ループボディで配列に値を割り当てる
一:配列を初期化せず、直接値を割り当てる


$list = [1, 2, 3];

foreach ($list as $value) {
    if($value != 2){
        $data[0] = $value ;
    }

    var_dump($data) ; 
}

/**
array(1) {
  [0]=>int(1)
}
array(1) {
  [0]=>int(1)
}
array(1) {
  [0]=>int(3)
}
*/

二:配列を初期化してから値を割り当てる


$list = [1, 2, 3];

foreach ($list as $value) {
    //       
    $data = [] ; 

    if($value != 2){
        $data[0] = $value ;
    }

    var_dump($data) ; 
}

/**
array(1) {
  [0]=>int(1)
}
array(0) {
}
array(1) {
  [0]=>int(3)
}
[Finished in 0.1s]
*/

比較によると、方式1では、ループ体では配列を初期化せず、$value==2でエラーの内容が得られた場合、ループ中に$dataが同じオブジェクトを指し、次回のループでは新しいオブジェクトは作成されない
方式2,ループのたびに配列初期化操作を行い,配列内容が空であることを確保する