list() の変更
1. list() は逆の順序で値を割り当てなくなりました
list($array[], $array[], $array[]) = [1, 2, 3]; var_dump($array);
上記のコードは代わりに配列 $array == [1, 2, 3] を返しますof before [3, 2, 1]
注: 割り当ての順序が変更されるだけで、割り当てられた値は元のものと同じです。
list($a, $b, $c) = [1, 2, 3]; // $a = 1; $b = 2; $c = 3;
動作はオリジナルと同じです。
2. 空の list() 割り当ては許可されなくなりました。
list() = $a; list(,,) = $a; list($x, list(), $y) = $a;
上記のコードは実行時にエラーを報告します。
3. list() は文字列分割関数をサポートしなくなりました
$string = "xy"; list($x, $y) = $string;このコードの最終結果は次のようになります: $x == null および $y == null (プロンプトは表示されません)
PHP5 操作の結果は次のとおりです: $x == "x" および $y == "y".
4. さらに、list() は配列オブジェクトにも適用されるようになりました:
list($a, $b) = (object) new ArrayObject([0, 1]);PHP7 の結果: $a == 0 および $b == 1.
PHP5 の結果: $a == null および $b == null.