PHP:未定义属性stdClass,但该属性已存在
下面是我的班级PHP:未定义属性stdClass,但该属性已存在,php,class,properties,Php,Class,Properties,下面是我的班级 class MaterialType { public $id; public $name; function getAllMaterialType() { $query = "SELECT * FROM material_types"; $result = mysql_query($query); $arr = array(); while ($row = mysql_fetch_ar
class MaterialType {
public $id;
public $name;
function getAllMaterialType() {
$query = "SELECT * FROM material_types";
$result = mysql_query($query);
$arr = array();
while ($row = mysql_fetch_array($result)) {
$arr[] = new MaterialType();
$arr[]->id = $row['m_type_id'];
$arr[]->name = $row['m_type_name'];
}
return $arr;
}
}
问题是当我在上面这样的数组中创建对象,并使用foreach
显示它时,
有错误显示未定义属性stdClass
。我已经定义了正在使用的属性,那么为什么会出现这些错误呢?下面是我用来
显示数据
$materialTypeObj = new MaterialType();
foreach($materialTypeObj->getAllMaterialType() as $mat) {
echo $mat->name;
}
每次执行
$array[]=
时,它都会在数组的末尾插入一个新元素。您需要做的是:
class MaterialType {
public $id;
public $name;
function getAllMaterialType() {
$query = "SELECT * FROM material_types";
$result = mysql_query($query);
$arr = array();
while($row = mysql_fetch_array($result)) {
$mat = new MaterialType();
$mat->id = $row['m_type_id'];
$mat->name = $row['m_type_name'];
$arr[] = $mat;
}
return $arr;
}
}