我在Magento中有一个扩展,导致system.log中出现错误
错误信息如下。它位于foreach语句
之后的return语句中 Notice: Undefined variable: struct
方法是
public function getFeeList($id)
{
//some code here but no statement that contains $struct
foreach($result2 as $kk=>$vv)
{
$struct[$vv['magikfees_id']]['tax_apply']=$vv['tax_apply'];
$struct[$vv['magikfees_id']]['tax_type']=$vv['tax_type'];
....
}
return $struct;
}
据我所知,您不需要声明PHP变量。所以有一个问题是
是$ struct变量的范围,在这种情况下仅在foreach中? OR
代码永远不会进入foreach语句,因此$ struct未初始化?
在foreach解决此问题之前宣布它?我怎么声明呢?
实际工作的代码是什么?
答案 0 :(得分:0)
您不需要声明PHP变量,但是如果不这样做,您将收到通知。您可以将其声明为$struct = array();
。
代码可以工作,但由于$struct
没有声明,很可能你犯了一个错误(可能是一个错字)。 PHP通过发送通知向您发出警告。虽然没有声明它确实有用,但建议无论如何都要声明它。
答案 1 :(得分:0)
getFeeList()
。一旦定义了变量,您可以稍后在该特定方法的代码中访问它。如果代码未输入foreach
,则变量将为null
。$struct = array();
之前添加foreach
来完成此操作。另一种解决方法是从E_NOTICE
中的error_reporting
设置中删除php.ini
,或在代码开头设置ini_set()
。尽管在PHP中您不需要定义变量,但定义它们是一种更好的编码实践。