Php foreach()参数无效

Php foreach()参数无效,php,wordpress,foreach,Php,Wordpress,Foreach,您好,我一直收到此错误在下面的循环中为foreach()提供的参数无效,我收到两个错误 警告:为第36行/home/xxx/xx.php中的foreach()提供的参数无效 警告:无法修改标题信息-标题已由第100行的/home/xxx/xx.php中的/home/xxx/xx.php:36处开始的输出发送 {“状态”:“成功”,“计数”:0,“数据”:[]} 要解决此问题,请将get\u post\u meta()方法中的第3个参数设置为FALSE。您可以选择删除第三个参数,因为default

您好,我一直收到此错误在下面的循环中为foreach()提供的参数无效,我收到两个错误

警告:为第36行/home/xxx/xx.php中的foreach()提供的参数无效

警告:无法修改标题信息-标题已由第100行的/home/xxx/xx.php中的/home/xxx/xx.php:36处开始的输出发送 {“状态”:“成功”,“计数”:0,“数据”:[]}


要解决此问题,请将
get\u post\u meta()
方法中的第3个参数设置为FALSE。您可以选择删除第三个参数,因为default值也是FALSE。现在应该返回一个数组。看

替换示例中的以下行:

$extra_attribute_records =  get_post_meta($id, '_product_attributes', TRUE);
使用这行代码:

$extra_attribute_records =  get_post_meta($id, '_product_attributes', FALSE);
为了防止“警告:为foreach()提供的参数无效”错误发生,如果出于任何原因,您不想从何处获取数组,请在foreach循环周围放置if语句,以检查
$extra_attribute_records
是否包含数组

if(is_array($extra_attribute_records)){
    foreach($extra_attribute_records as $key => $value) { 
        $attribute_names[] = $key;
    }
}

PHP错误“警告:为foreach()提供的参数无效”正在输出到页面,这就是为什么在您到达“header('Content-type:text/json');”时标题已经被发送的原因。修复上述问题后,您可以发送内容类型标题。

请发布完整的错误消息…只有第一条,即第二条只是后续消息。请告诉我们
get\u post\u meta()
做了什么,然后发布其代码。谢谢。我们能看到行号吗?嗯,
$extra\u attribute\u records
是数组吗?这试图修复症状,而不是原因。我无法确定原因的修复方法,因为问题在于
get\u post\u meta()
方法,我们没有提供代码。那么,也许你不应该发布“答案”,因为这不能回答问题?我现在添加了我建议的修复方法,使
get\u post\u meta()
方法返回数组而不是字符串。这是正确的答案,但是您不必传入
false
-这是默认值。
if(is_array($extra_attribute_records)){
    foreach($extra_attribute_records as $key => $value) { 
        $attribute_names[] = $key;
    }
}