У меня есть класс. в основном конструкция и функция установки одинаковы.
все прекрасно работает таким образом.
но когда я пытаюсь удалить идентичный код из функции конструкции и вместо этого просто вызвать функцию установки, я получаю фатальную ошибку:
«Неустранимая ошибка: использование $ this, когда он не находится в контексте объекта в …», — вот код перед изменением (это работает без ошибок)
Class Zmanim extends ZmanimCalculation {
//this class contains all the stuff needed in order to make the zmanim page work
private $day_const,$month_const,$year_const,$latitude_const,$longitude_const,$tz_const,$date_convertor_const,$zmanim_array_const;function __construct($set_day,$set_month,$set_year,$set_latitude,$set_longitude,$set_tz,$set_date_convertor=true) {
$this->day_const=$set_day;
$this->month_const=$set_month;
$this->year_const=$set_year;
$this->latitude_const=$set_latitude;
$this->longitude_const=$set_longitude;
$this->tz_const=$set_tz;
$this->date_convertor_const=$set_date_convertor;
$this->zmanim_array_const=ZmanimCalculation::Full_Zmanim_calculation ($this->day_const,$this->month_const,$this->year_const,$this->latitude_const,$this->longitude_const,$this->tz_const,$this->date_convertor_const);}
static function setZmanim ($set_day,$set_month,$set_year,$set_latitude,$set_longitude,$set_tz,$set_date_convertor=true) {
$this->day_const=$set_day;
$this->month_const=$set_month;
$this->year_const=$set_year;
$this->latitude_const=$set_latitude;
$this->longitude_const=$set_longitude;
$this->tz_const=$set_tz;
$this->date_convertor_const=$set_date_convertor;
$this->zmanim_array_const=ZmanimCalculation::Full_Zmanim_calculation ($this->day_const,$this->month_const,$this->year_const,$this->latitude_const,$this->longitude_const,$this->tz_const,$this->date_convertor_const);
}
и вот как я называю конструкцию (все еще работает без ошибки:
$fullzmanim=new Zmanim ($_POST['zmanim_gregorian_day'],
$_POST['zmanim_gregorian_month'],
$_POST['zmanim_gregorian_year'],
$latitude,
$longitude,
$tz);
но когда я просто вызываю статическую функцию сеттера в функции конструкции, я получаю ошибку. вот плохой код:
Class Zmanim extends ZmanimCalculation {
//this class contains all the stuff needed in order to make the zmanim page work
private $day_const,$month_const,$year_const,$latitude_const,$longitude_const,$tz_const,$date_convertor_const,$zmanim_array_const;function __construct($set_day,$set_month,$set_year,$set_latitude,$set_longitude,$set_tz,$set_date_convertor=true) {
self::setZmanim($set_day,$set_month,$set_year,$set_latitude,$set_longitude,$set_tz,$set_date_convertor);}
static function setZmanim ($set_day,$set_month,$set_year,$set_latitude,$set_longitude,$set_tz,$set_date_convertor=true) {
$this->day_const=$set_day;
$this->month_const=$set_month;
$this->year_const=$set_year;
$this->latitude_const=$set_latitude;
$this->longitude_const=$set_longitude;
$this->tz_const=$set_tz;
$this->date_convertor_const=$set_date_convertor;
$this->zmanim_array_const=ZmanimCalculation::Full_Zmanim_calculation ($this->day_const,$this->month_const,$this->year_const,$this->latitude_const,$this->longitude_const,$this->tz_const,$this->date_convertor_const);
}
Кто-нибудь знает, что не так?
Спасибо!
Задача ещё не решена.
Других решений пока нет …