Ниже мой класс.
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
, есть ошибки, которые говорят Undefined property 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; } }