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.