《PHP8上級試験対策》返り値にもnullable型は使える!誤解されやすいポイントを解説

  • URLをコピーしました!

はじめに

PHP7.1から導入されたnullable型(?型)は、パラメータだけでなく返り値にも指定可能です。
しかし「返り値には指定できない」と書かれた教材や問題集があり、試験でも混乱しやすいポイントです。本記事では誤解されやすい部分を整理し、コード例で正しい使い方を確認します。

キーワード:返り値のnullable型 / パラーメーターのnullable型 / ?型 / PHP7.1以降

目次

誤解されやすい記述

  • 「nullableを指定できるのはパラメータだけで、返り値には指定できない」
  • 「PHP7.1で返り値に ?型 を書くと Parse error になる」

✅ この記述は 誤り です。

正しい使い方

パラメータにnullableを指定

function foo(?string $name): void {
    var_dump($name);
}

foo("Taro"); // string(4) "Taro"
foo(null);   // NULL

返り値にnullableを指定

function bar(): ?string {
    return rand(0,1) ? "Hello" : null;
}

var_dump(bar()); // string(5) "Hello" または NULL

試験対策ポイント

  1. ?型 は「型 or null」を意味する
  2. PHP7.1以降は パラメータにも返り値にも使用可能
  3. PHP7.0以前は構文がないので 返り値に ?型 はエラーになる
  4. 「返り値には指定できない」と書かれている選択肢は 間違いとして正解

まとめ

  • パラメータ側:?string $arg → 引数に string または null を渡せる
  • 返り値側:(): ?string → 戻り値として string または null を返せる
  • 試験で迷ったら「返り値にもnullableは使える」という知識を思い出す

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

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