Как вызвать функцию, названную в статическом свойстве объекта? - PullRequest
1 голос
/ 29 июля 2011

Я хочу вызвать функцию для объекта.Имя функции хранится в статическом свойстве класса (экземпляром которого является объект).Этот вызов происходит внутри одного из методов объекта.

Ни один из приведенных ниже подходов не работает (это после getBean()->, что я в замешательстве).

$this->getBean()->User::$BEANSCHEMA_FIRST_NAME;

$this->getBean()->self::$BEANSCHEMA_FIRST_NAME;

$this->getBean()->$self::$BEANSCHEMA_FIRST_NAME;

Как мне это сделатьжелательно без странной библиотечной функции типа call_user_func()?

1 Ответ

1 голос
/ 29 июля 2011

Используйте {}, надеюсь, это поможет ( Демонстрация ):

class Funcaro
{
    public static $MUNKI_SELF = 'munki';
    public function munki()
    {
        echo 'You got me :)', "\n";
    }
}

class Callara extends Funcaro
{

    public function get()
    {
        return new Funcaro();
    }
    public function call()
    {
        $this->get()->{self::$MUNKI_SELF}();
    }
}

$c = new Callara();

$c->get()->munki();

$munki = 'munki';

$c->get()->$munki();

$c->get()->{Funcaro::$MUNKI_SELF}();

$c->call();

Связано: Синтаксис фигурных скобок PHP для переменной-члена

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...