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