Я работаю с анонимными функциями, где я создаю анонимную функцию вне объекта, а затем добавляю ее к объекту, в котором она будет использоваться с помощью магической функции __callStatic. Закрытия, в которые добавляются функции, содержат методы из родительского класса. Мне интересно, смогу ли я вызывать эти методы из закрытия?
Сейчас я получаю эту ошибку:
EmptyObject::addMethod('open', function(){
if (static::_hasAdapter(get_class(), __FUNCTION__))
return self::_callAdapter(get_class(), __FUNCTION__, $details);
echo '<p>You have mail!</p>';
});
выкидывает эту ошибку:
Fatal error: Cannot access static:: when no class scope is active in
И
//Add the functions
EmptyObject::addMethod('open', function(){
if (EmptyObject::_hasAdapter('EmptyObject', __FUNCTION__))
return EmptyObject::_callAdapter('EmptyObject', __FUNCTION__, $details);
echo '<p>You have mail!</p>';
});
выкидывает эту ошибку, потому что метод защищен
Fatal error: Uncaught exception 'BadMethodCallException' with message 'Method '_hasAdapter' was not found in class EmptyObject'