PHP で Unsupported operand types が出る場合の対応方法

PHP でプログラムしている中でスクリプトを動作させて「Fatal error: Uncaught Error: Unsupported operand types ・・・」とエラー表示される場合はデータの型が違う場合が多く、エラーの原因と対応方法について紹介する。

PHP で Unsupported operand types が出る場合の対応方法

1.PHP で「Fatal error: Uncaught Error: Unsupported operand types ・・・」が出る様子

PHP で「Fatal error: Uncaught Error: Unsupported operand types ・・・」が出る場合は PHP でプログラムされたスクリプトを実行すると下記のようなエラーで表示される。

Fatal error: Uncaught Error: Unsupported operand types in /var/www/html/index.php:457 Stack trace: #0 /var/www/html/index.php(201): viewDayly() #1 {main} thrown in /var/www/html/index.php on line 457



index.php の中に viewDayly() と命名した関数があり、その中でエラーが発生していることを示している。

2.「Fatal error: Uncaught Error: Unsupported operand types ・・・」が出る原因

「Fatal error: Uncaught Error: Unsupported operand types ・・・」とエラーが表示される原因としては、処理しようとしている変数のデータの型が異なる場合である。

例えば次の計算式がある場合、$row と $rows ともにデータの型は string または int である必要があるが、片方が配列(array)になっていると計算が成立せずに本エラーが表示される。

$cntWidth = ( $row / $rows ) * 500;



3.「Fatal error: Uncaught Error: Unsupported operand types ・・・」が出る場合の対応方法

「Fatal error: Uncaught Error: Unsupported operand types ・・・」が出る場合の対応方法としては、エラーで指摘されているプログラムの行を見て、利用している変数のデータ型で処理できる型に変更する必要がある。

もし配列(array)であれば配列のまま直接処理はできないので for や foreach でループさせながら処理するか、$array[0] といったように添え字を付けて要素を指定して利用するとよい。

また、取り扱う変数のデータの型が分からない場合は string や array といった型を返す関数 gettype() で確認すると原因がわかりやすい。

その他、文字列型(string)で計算できない場合は (int)$row といったように (int) を変数名の前につけて数値化(キャスト)すると処理できる場合もある。

関連記事

コメントを残す