Доброго времени суток. Мне нужно создать что-то вроде календаря, куда можно добавлять термины. Так вот я написал один класс, но где-то в нём ошибка в методе toString() или в конструкторе. В общем вот мой код: Код (Text): <?php class Termin { private $year; private $month; private $day; private $hour; private $addhalf; private $free; private $termin = ""; public function __Termin($year, $month, $day, $hour, $addhalf, $free) { $this->year = $year; $this->month = $month; $this->day = $day; $this->hour = $hour; $this->addhalf = $addhalf; $this->free = $free; } function toString() { if ($this->day < 10) { $this->termin .= "0" . (string)$this->day; } else { $this->termin .= (string)$this->day; } $this->termin .= "."; if ($this->month < 10) { $this->termin .= "0" . (string)$this->month; } else { $this->termin .= (string)$this->month; } $this->termin .= "."; $this->termin .= (string)$this->year; $this->termin .= " "; if ($this->hour < 10) { $this->termin .= "0"; } $this->termin .= (string)$this->hour; $this->termin .= " : "; if ($this->addhalf) { $this->termin .= "30"; } else { $this->termin .= "00"; } return $this->termin; } } $t = new Termin(2013, 12, 19, 17, true, true); echo ($t->toString()); ?> В конце я создаю объект класса Termin. Почему метод toString() выдаёт 0.0. 0 : 00, а не 19.12.2013 17 : 30 ?? Мне кажется, что переменные не были инициализированы, но ведь объект уже создан. Как так получается, в чём моя ошибка? Добавлено спустя 20 минут 39 секунд: И заодно вопрос еще один. Нужно ли в методах самого класса обращаться к переменным через this или это лишнее?
В PHP обязательно. Потом, с чего вы взяли, что конструктор должен так странно называться? Начиная с php5, если мне память не изменяет, называется __construct(). У вас просто не инициализируется ваш объект
Мой конструктор выглядит теперь так: Код (Text): __construct($year, $month, $day, $hour, $addhalf, $free) { $this->year = $year; $this->month = $month; $this->day = $day; $this->hour = $hour; $this->addhalf = $addhalf; $this->free = $free; } Но это не решило проблему Приставку function я тоже вставлял...не идёт