PHP でプログラムしている中でスクリプトを動作させて「Fatal error: Uncaught Error: 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) を変数名の前につけて数値化(キャスト)すると処理できる場合もある。
関連記事
Seesaa とウェブリブログから WordPress へブログを引っ越しをする手順
ウェブリブログが2023年01月にサービス終了となるにあたり 4 月に追加されるウェブリブログの機能で簡単に Seesaa ブログに移行できるが、これを機に WordPress など自前でブログ環境を用意…
【ダウンタイムゼロ】レンタルサーバを変える時にウェブサイトを引っ越す手順
ウェブサイトやブログを運営していて料金を安くしたり、さらに高スペックのサーバに変えたいなどさまざまな理由で利用しているレンタルサーバを変えたいことが発生するが、サイトが常に表示…
一つのドメインを使い回してウェブサイトを分けたり違うサーバで運用する場合にサブドメインが用いられるが、サブドメインを使うためには DNS サーバへ設定する必要があるので、サブドメイン…