PHP为foreach()提供的参数无效

时间:2015-04-29 15:22:46

标签: php arrays foreach

我有这个数组:

./testexe <<<"$a"$'\n'"$b"

我正在检查一个单词是否在我的数组中:

    $y_exceptions = array(
    "lay",
    "interlay",
    "display",
    "delay",
    "obey",
    "decay",
    "play",
    "slay"
);

引发错误

  

为foreach()提供的参数无效

我做错了什么?

1 个答案:

答案 0 :(得分:2)

$y_exceptions需要是一个数组,以便由foreach循环处理。在foreach循环之前,$y_exceptions可能设置为nullnull不被视为数组,foreach期望 - 因此警告。

解决方案将在foreach之前进行更严格的验证:

if (!is_array($y_exceptions)) {
    // throw an exception
}

或者,您可以指示foreach循环将$y_exceptions作为数组运行,但这可能会导致下游错误:

foreach ((array) $y_exceptions as $thisException) {
    // do stuff
}