Warning:Invalid argument supplied for foreach()
エラー原因
foreachが配列とオブジェクトにしか対応していないため、それ以外の型でforeachでは動かせないのです。
<?php $var = 'Hello,World'; foreach ($var as $value) { echo $value; }
対処方法
対処方法は3つ。
1つ目はimplodeを使用して配列を展開する。
<?php $arr = [0,1,2,3]; // カンマ,区切りで出力 echo implode(',', $arr);
2つ目は型を配列もしくはオブジェクトに変換する。
<?php $var = 'Hello,World'; // 配列に変換 foreach ((array)$var as $value) { echo $value; } // オブジェクトに変換 foreach ((object)$var as $value) { echo $value; }
3つ目はis_iterableを使用してチェックを行う。
<?php $var = 'Hello,World'; // 変数の内容が反復可能な値であることを確認 if(is_iterable($var)){ foreach ($var as $value) { echo $value; } }
0 件のコメント :
コメントを投稿