Я пытаюсь загрузить строки из базы данных, а затем создать объекты из них и добавить эти объекты в частный массив.
Вот мои занятия:
<?php
include("databaseconnect.php");
class stationItem {
private $code = '';
private $description = '';
public function setCode($code ){
$this->code = $code;
}
public function getCode(){
return $this->code;
}
public function setDescription($description){
$this->description = $description;
}
public function getDescription(){
return $this->description;
}
}
class stationList {
private $stationListing;
function __construct() {
connect();
$stationListing = array();
$result = mysql_query('SELECT * FROM stations');
while ($row = mysql_fetch_assoc($result)) {
$station = new stationItem();
$station->setCode($row['code']);
$station->setDescription($row['description']);
array_push($stationListing, $station);
}
mysql_free_result($result);
}
public function getStation($index){
return $stationListing[$index];
}
}
?>
Как вы видите, я создаю объект stationItem для каждой строки базы данных (которая на данный момент имеет код и описание), а затем помещаю их в конец моего массива, который хранится в качестве закрытой переменной в stationList. *
Это код, который создает эти классы и пытается получить к ним доступ к свойствам:
$stations = new stationList();
$station = $stations->getStation(0);
echo $station->getCode();
Я обнаружил, что sizeof ($ stationList) в конце конструктора равен 1, но затем он равен нулю, когда мы пытаемся получить объект из массива с помощью индекса. Поэтому ошибка, которую я получаю:
Неустранимая ошибка: вызов функции-члена getCode () для необъекта
Пожалуйста, кто-нибудь может объяснить мне, почему это происходит? Наверное, я неправильно понимаю, как ссылки на объекты работают в PHP5.