「 Invalid argument supplied for foreach()」というPHPエラー

エラーログ

Invalid argument supplied for foreach() in~

翻訳:foreachの引数が無効です

「Invalid argument supplied for foreach()」はforeachを利用する際に起こるPHPエラー

引数に定義している値が配列またはオブジェクトでない場合に発生します

以下PHPコードははエラーになります

<?php
$data = 'abc';
foreach ($data as $key => $value) {
 echo $key.$value;
}
?>

解決策

引数に定義している値が配列やオブジェクトになっているか確認・修正します

また状況によって配列でなくなる場合がある場合は「(array)」を利用してエラーを回避する事が可能です

<?php
$data = 'abc';

foreach ((array)$data as $key => $value) {
 echo $key.$value;
}
?>


(array)を付けた場合、配列でなくても配列として処理され出力結果は「0ABC」となります

エラーログ

Posted by Yousuke.U