【PHP】Warning:Invalid argument supplied for foreach()


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

コメントを投稿