检查所有内容后为 foreach 提供的参数无效


Invalid Argument supplied for foreach after checking everything

我知道这个问题已经被回答了一百次,但这太奇怪了。我有这个代码:

if (isset($vendor_social) && !is_null($vendor_social) && count($vendor_social) > 0) {
    foreach ($vendor_social as $soc) { ... }
}

我仍然得到

为 foreach() 提供的参数无效

在那条线上。这到底是怎么回事?

例如,它可能是字符串类型,它应该是一个数组。您可以在支票中添加is_array($vendor_social)

$vendor_social很可能

不是数组,或者更准确地说不是可遍历的。

例如,非空字符串将满足您的条件,但失败。