Closed pafnuty closed 10 years ago
Все верно, у статического класса нет $this, надо использовать self. Вам надо либо сохранить $config в класс myClass, что бы использовать вариант
static function mymod($word, $mod) {
return $word . ' + ' . self::$config[$mod];
}
либо использовать только анонимную функцию:
$this->tpl->addModifier(
'mymod', function ($word, $mod) use ($config) {
return $word . ' + ' . $config[$mod];
}
);
либо увеличить количество аргументов в методе mymod:
$this->tpl->addModifier(
'mymod', function ($word, $mod) use ($config) {
return myClass::mymod($word, $mod, $config);
}
);
// ...
static function mymod($word, $mod, $config) {
return $word . ' + ' . $config[$mod];
}
ну а также есть еще куча других варантов решающие доступность $config в классе myClass
Спасибо! Сделал по третьему предложенному варианту.
Не могу справиться с правильным добавлением собственного модификатора. Для примера воспроизвёл в упрощённой форме то место, где у меня возникает ошибка.
функция declinationWords нормально работает, а вот mymod - выдаёт ошибку: Fatal error: Using $this when not in object context in ...
Буду благодарен за подсказку в каком направлении копать.