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 件のコメント :
コメントを投稿