PHP-класс, вызываемый как функция - PullRequest
2 голосов
/ 07 сентября 2011

есть ли способ написать класс, который можно вызывать как функцию?Я имею в виду что-то вроде этого:

class test{}
$test = new test;
$test();

Я пытался использовать магический метод __call, но его можно использовать только при доступе к несуществующим методам.Может быть, это можно сделать с помощью классов или интерфейсов SPL?

1 Ответ

5 голосов
/ 07 сентября 2011

Используйте магический метод вызова __ :

class test{
    public function __invoke()
    {
        return 'fooo';
    }
}

$test = new test;
print $test();

Но для этого вам нужен PHP 5.3.

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

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