Code Fix

上級enumのfrom()に存在しない値を渡すと ValueError になる › パターン3

enumのfrom()に存在しない値を渡すと ValueError になる

バックドenum(値を持つenum)のfrom()メソッドは、対応するcaseが存在しない値を渡すとValueErrorを投げます。

 1  <?php
 2  enum Currency: string {
 3      case Yen = 'JPY';
 4      case Dollar = 'USD';
 5  }
 6  $c = Currency::from(_____);
                          ^
 7  echo $c->name;
Fatal error: Uncaught ValueError: "EUR" is not a valid backing value for enum Currency in main.php:6

空欄を埋めて実行を通す

広告
広告スロット(未設定)

enumのfrom()に存在しない値を渡すと ValueError になる

外部からの入力値をそのままfrom()に渡す場合は、事前の検証やtryFrom()の利用が必要です。

このエラーの解説と類題をまとめて見る →

広告
広告スロット(未設定)