我有这个数组:
./testexe <<<"$a"$'\n'"$b"
我正在检查一个单词是否在我的数组中:
$y_exceptions = array(
"lay",
"interlay",
"display",
"delay",
"obey",
"decay",
"play",
"slay"
);
引发错误
为foreach()提供的参数无效
我做错了什么?
答案 0 :(得分:2)
$y_exceptions
需要是一个数组,以便由foreach循环处理。在foreach循环之前,$y_exceptions
可能设置为null
。 null
不被视为数组,foreach期望 - 因此警告。
解决方案将在foreach之前进行更严格的验证:
if (!is_array($y_exceptions)) {
// throw an exception
}
或者,您可以指示foreach循环将$y_exceptions
作为数组运行,但这可能会导致下游错误:
foreach ((array) $y_exceptions as $thisException) {
// do stuff
}