PHP | Unsupported operand types エラーの原因と修正案

2023-10-25PHP エラー,PHP

PHP | Unsupported operand types エラーの原因と修正案

PHPでエラー「Unsupported operand types」が発生する原因と対処・修正案について紹介しています。

このエラーは例えば以下のようなエラーコードを出力します。

Fatal error: Uncaught TypeError: Unsupported operand types: string + int in ~
致命的なエラー:キャッチされないタイプエラー:サポートされていないオペランドタイプ:二文字列 + 数値

Fatal error: Uncaught TypeError: Unsupported operand types: string + string
致命的なエラー:キャッチされないタイプエラー:サポートされていないオペランドタイプ:文字列 + 文字列

Unsupported operand types エラーの発生原因と修正案

「Unsupported operand types」というPHPエラーは主に関数のオプションや計算処理で変数の型が一致しない場合の比較や判別時に発生するエラーです。

また、文字列型の連結において「+」演算子を使おうとしている記述でも発生します。
JavaScript書いた後など間違って「+」で繋げてしまっていたりであります。

このエラーは致命的なエラー(Fatal error)、キャッチされないタイプエラー(Uncaught TypeError)に分類されています。

「Unsupported operand types」エラーが発生する簡単なケースのサンプルコードは以下のようなものが考えられます。

$i = '';
echo $i + 1;
$str = 'abc' + 'def';
// PHPの文字列連結は「.」です

上記サンプルコードの場合、$iに1をプラスしようとしていますが$iは文字列型が定義されていますので処理を実行できずにエラーとなります。

PHP8現在は問題のある変数の型がエラーコードに表示されています。
例えば文字列ではなく配列だった場合は以下のようなエラーコードを出力します。

Fatal error: Uncaught TypeError: Unsupported operand types: array + int in ~

このエラーを解決するには、該当場所で利用している変数の型を確認して修正します。

PHP エラー,PHP

Posted by Yousuke.U