Спасибо всем, кто мне помогает. Я очень многому научился благодаря вашим ответам и жду, что мои советы будут вам когда-нибудь полезны.
я проблема с PHP 5.3. Мне нужно вызвать метод с помощью__callStatic
, но если я использую его в экземпляре объекта, вызов PHP__call
вместо.
Выше реального примера:
<?php
class A {
function __call($method, $args){
// Note: $this is defined!
echo "Ops! Don't works. {$this->c}";
}
static function __callStatic($method, $args){
echo 'Fine!';
}
}
class B extends A {
public $c = 'Real Ops!';
function useCallStatic(){
static::foo();
// === A::foo();
// === B::foo();
}
}
$foo = new B();
$foo->useCallStatic();
// This works:
// B::foo();
?>
Печать: Опс! Не работает. Настоящий Опс!
Обратите внимание, что я звонюuseCallStatic
изnew B()
, Если я позвоню напрямую, работает нормально, какB::foo()
.
Что я могу сделать, чтобы он работал нормально?