基本構文(9)
1行のステートメントで、複数の変数に代入することができます。
複数の変数への同時代入(1)
MSH> $a=1,2,3,4,5,6 MSH> $first,$second,$rest = $a MSH> $first 1 MSH> $second 2 MSH> $rest 3 4 5 6
- 変数をカンマで区切って並べ配列($a)を代入すると、配列の要素が順に代入されます。
- 「代入する変数の数」 < 「配列の要素」の場合
- 最後の変数($rest)に残りの配列要素が全て代入されます。($rest = 3,4,5,6)
複数の変数への同時代入(2)
MSH> $a=1,2 MSH> $first,$second,$third = $a MSH> $first 1 MSH> $second 2 MSH> $third MSH> MSH> $third -eq $null True
- 「代入する変数の数」 > 「配列の要素」の場合
- 要素数を超えた変数には$nullが代入されます。
当然ですが、以下のように記述しても、
配列の先頭要素だけを代入することはできません。
MSH> $a=1,2,3 MSH> $first = $a MSH> $first 1 2 3
配列の先頭要素を代入する場合は、普通にインデックスを指定してください。
MSH> $first = $a[0] MSH> $first 1
複数の変数への同時代入(3)
他の言語でも一般的だと思いますが、
以下のようにすると、同じ値を同時に代入可能です。
MSH> $a=$b=$c=$d=1 MSH> $a 1 MSH> $b 1 MSH> $c 1 MSH> $d 1