古庄親方の上級試験コラム#003「言語リファレンス > 型 その2」

PHPでは、変数には型があり、関数のパラメータや戻り値、クラスのプロパティに型の指定をする事ができます。 https://www.php.net/manual/ja/language.types.type-system.php

配列(array)は、「いくつかの値をひとかたまりに扱う」変数です。
PHPの配列はすべて「順番付けられたマップ」ですが、「数値添字配列(添字配列)」「文字添字配列(hash配列/連想配列)」の2つに切り分けて会話をする事も多いでしょう(PHPマニュアルの英語では、int key、string keyと書かれています)。
また、全体に通用するわけではない程度の慣習ですが、数値添字配列を「配列」、文字添字配列を「hash配列/連想配列」と呼ぶ事も多いです(そのため、本文では以降、そのように呼称していきます)。

配列はよく使われるために、色々な機能がありますのでしっかりと学んでおきましょう。

PHPでの配列の書き方、連想配列の書き方を把握しておきましょう。
また、PHPは本来的にはすべて「順番付けられたマップ」であるため、数値キーと文字キーを混在した書き方が可能です。
数値キーを「途中で指定した時」の以降の数値キーの割り振られかたも把握しておくとよいでしょう。

PHPの配列でキーとして扱えるのは「intまたはstringのみ」となります。
それ以外の値を指定した時は、intまたはstringにキャストされたり、警告が出たりエラーが出たりします。

配列をreturnする関数やメソッドで、戻り値を変数で受け取らず直接[]を使って値を取り出す事ができます。
これを「配列のデリファレンス」と言います。

配列の要素を分解する事ができます。
list()を使うほか、PHP 7.1以降は[]を使っての書式もありますので確認をしておきましょう。
また、連想配列も分解する事ができます。

array_merge()関数や加算演算子でも配列を結合/マージする事ができますが、…演算子(公式マニュアルには記載がありませんが、三点リーダー/三点ドット という言い方も比較的よく使われる用語です)でも配列を結合する事ができます。マニュアルで「配列のアンパック」と書かれています。
試験の範囲外ではありますが、PHP 8.1からは連想配列のアンパックもサポートしています。
キーが重複した場合の挙動はarray_merge() 関数の仕様に従います。

このコラムに関連するコードはこちらになります( https://github.com/php-engineer-examination/php8_column_expert/blob/main/src/003.php )。


PHP8技術者認定試験上級/準上級試験については以下をご覧ください。
https://www.phpexam.jp/summary/expert8/

同模擬試験については以下をご覧ください。
https://study.prime-strategy.co.jp/study/ph8ex1/

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次