Спасибо всем, кто мне помогает. Я очень многому научился благодаря вашим ответам и жду, что мои советы будут вам когда-нибудь полезны.

я проблема с 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().

Что я могу сделать, чтобы он работал нормально?

Ответы на вопрос(5)

Ваш ответ на вопрос