Php 问题与:“;警告:为foreach提供的参数无效;
我对阵列上的上述警告感到有些苦恼 我完全理解这个警告是什么,是什么导致了它,我已经采取了我所能采取的每一个步骤来阻止它,但是,唉,没有一个是有任何效果的 采取的步骤: 我已经检查了数组,如果不存在就声明它Php 问题与:“;警告:为foreach提供的参数无效;,php,foreach,reporting,warnings,Php,Foreach,Reporting,Warnings,我对阵列上的上述警告感到有些苦恼 我完全理解这个警告是什么,是什么导致了它,我已经采取了我所能采取的每一个步骤来阻止它,但是,唉,没有一个是有任何效果的 采取的步骤: 我已经检查了数组,如果不存在就声明它 if(!$this->theVariables['associated']){ $this->theVariables['associated'] = array(); } 及 两者都没有任何效果 我将foreach包装在if中,检查数组是否为空(!empty())
if(!$this->theVariables['associated']){
$this->theVariables['associated'] = array();
}
及
两者都没有任何效果
我将foreach
包装在if
中,检查数组是否为空(!empty()
),它是否存在,它是否为数组(is_array()
),然后甚至在foreach
声明中键入cast数组(foreach((array)$this->变量['associated']as$item)
)然而,我仍然得到这个警告
由于我无法关闭此特定服务器上的错误报告,是否有其他方法阻止显示此警告
它快把我逼疯了。试试:
if (is_array($this->theVariables['associated'])) {
// your foreach here
}
例如,如果
$this->变量['associated']
将是1
此数组分配将永远无法到达:
if(!$this->theVariables['associated']){
$this->theVariables['associated'] = array();
}
(第二次测试也是如此)
至于瓦格斯的评论,请看一看
例如,如果您的测试看起来像这样,您可能会遇到以下问题:
<?php
$fakeArray = 'bad';
if (empty($fakeArray) && !is_array($fakeArray)) {
$fakeArray = array();
}
var_dump($fakeArray);
为什么不检查
if(is_array($this->theVariables['associated']){
?如果确实需要循环该对象,请首先将其转换为数组:
foreach((array) $this->theVariable as $key => $value){
echo $key . " = " . $value . "<br>";
}
foreach((数组)$this->变量为$key=>$value){
echo$key.“=”$value.“
”;
}
正在检查数组是否存在
写下以下内容:
if (!isset($this->theVariables['associated']) ||
!is_array($this->theVariables['associated']))
您是否可以对正在使用的变量进行var_转储并将结果发布到此处?您是否确定正在检查正确的数组?或者它在循环中没有被覆盖?
var_转储
在我检查数组返回值null
,var_转储
在我检查并声明它返回数组(空)之前
正如预期的那样。因此对象现在是一个数组,但每次尝试使用foreach
@lafur Waage时,我仍然会收到此警告,因为没有他使用is_数组进行测试的示例代码,我只能猜测他遇到了一个懒惰的评估问题。(例如,使用!is_empty(…)| |
在为_数组之前
检查)@Designermonkey然后请提供您尝试的代码(或者更好,提供完整的代码).Asis_array
通常是万无一失的。我将此答案标记为正确的,因为我无法收回此问题。我们的服务器没有反映在所述代码的每次部署中对代码所做的更改。我刚刚彻底检查了服务器上的代码,发现没有应用我的任何编辑。
foreach((array) $this->theVariable as $key => $value){
echo $key . " = " . $value . "<br>";
}
if (!$this->theVariables['associated'])
if (!isset($this->theVariables['associated']) ||
!is_array($this->theVariables['associated']))