《PHP8上級試験対策》配列アクセス・null合体演算子・エラー制御演算子の動き

  • URLをコピーしました!

はじめに

PHP で配列の要素を扱うとき、存在しないキーにアクセスするとエラーになってしまいます。
今回のコードは「存在しないキーにアクセスしたときの挙動」を、??(null合体演算子)や @(エラー制御演算子)とあわせて確認する内容です。試験対策だけでなく、日常のコーディングでも役立つポイントですので整理してみます。

キーワード:null合体演算子(??)/ エラー制御演算子(@)/ 配列アクセス / Undefined array key

目次

サンプルコード

<?php
declare(strict_types=1);
error_reporting(-1);

$arr = [
    'key' => 123,
];

$val = $arr['no key'] ?? 'default';
var_dump($val);

$val2 = @$arr['no key2'] ?? 'default 222';
var_dump($val2);

ポイント解説

$arr['no key'] ?? 'default'

  • $arr['no key'] は存在しません。
  • ただし null合体演算子 ?? によって、存在しないときは 'default' が返ります。

👉 実際の出力:

string(7) "default"

@$arr['no key2'] ?? 'default 222'

  • $arr['no key2'] も存在しません。
  • そのあと ?? が評価され、 'default 222' が返ります。

👉 実際の出力:

string(11) "default 222"

まとめ

  • ?? は「値が存在しなければデフォルト値を返す」という便利な演算子。
  • @ を付ければその警告を抑制できるが、基本的には 安易に使うべきではない(エラーを握りつぶす可能性があるため)。

実行結果まとめ

string(7) "default"
string(11) "default 222"

この記事が気に入ったら
いいねしてね!

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