(jp) =
# リストまたは []
PHPでは、 list
また []
は、いわゆる「言語構造」です。 array()
. この言語構造は、配列から変数を「引き出す」ために使用されます。 つまり、配列を個別の変数に「分解」します。
この言葉は「破壊」ではなく「破壊」であることに注意してください — それは何か違うものです
これは次のようになります。
$array = [1, 2, 3];
list($a, $b, $c) = $array;
[$a, $b, $c] = $array;
好むかどうか list
またはその省略形 []
あなた次第です。 人々はそれを主張するかもしれません []
省略形の配列構文ではあいまいであるため、好む list
. ただし、コード サンプルでは簡略版を使用します。
では、これ以上何ができるでしょうか list
行う?
# 要素をスキップ
配列の 3 番目の要素だけが必要だとします。最初の 2 つは、変数を指定しないことでスキップできます。
[, , $c] = $array;
また、 list
は常にインデックス 0 から始まります。たとえば、次の配列を見てください。
$array = [
1 => 'a',
2 => 'b',
3 => 'c',
];
で引き出された最初の変数 list
だろう null
、インデックスを持つ要素がないため 0
. これは欠点のように思えるかもしれませんが、幸いなことに、他にも可能性があります。
# 非数値キー
PHP 7.1 では許可されます list
非数値キーを持つ配列で使用します。 これにより、可能性の世界が開かれます。
$array = [
'a' => 1,
'b' => 2,
'c' => 3,
];
['c' => $c, 'a' => $a] = $array;
ご覧のとおり、必要に応じて順序を変更したり、要素を完全にスキップしたりできます。
# 実際には
の用途の一つ list
のような関数です parse_url
と pathinfo
. これらの関数は名前付きパラメーターを含む配列を返すため、次を使用できます。 list
必要な情報を引き出すには:
[
'basename' => $file,
'dirname' => $directory,
] = pathinfo('/users/test/file.png');
ご覧のとおり、変数はキーと同じ名前である必要はありません。 また、不明なキーを持つ配列を分解すると、通知がトリガーされることに注意してください。
[
'path' => $path,
'query' => $query,
] = parse_url('https://stitcher.io/blog');
この場合、 $query
だろう null
.
最後の詳細: 配列で慣れているのと同じように、名前付き destruct で末尾のコンマを使用できます。
# ループ内
ループでリスト構成を使用することもできます。
$array = [
[
'name' => 'a',
'id' => 1
],
[
'name' => 'b',
'id' => 2
],
];
foreach ($array as ['id' => $id, 'name' => $name])
これは、たとえば JSON または CSV ファイルを解析するときに役立ちます。 ただし、未定義のキーでも通知がトリガーされることに注意してください。
要約すると、かなり良いケースがいくつかあります。 list
役立つことができます!