Переменная автозагрузки PHP - PullRequest
2 голосов
/ 01 июня 2011

Я не уверен, если это возможно, или это правильное место для размещения вопросов такого типа, но здесь идет!

Есть ли способ автозагрузки переменной с классом с таким же именем? Пример этого:

class MyClass
{
    ....
    function display() { echo 'test'; }
}

Мне интересно, возможно ли сделать следующее:

$MyClass->display();

без предварительного создания экземпляра класса MyClass в переменной $ MyClass.

Как я уже сказал, я не уверен, возможно ли это, и если это неправильное место для такого рода вопросов, я с радостью удалю свой пост.

UPDATE Спасибо за все ваши ответы, ребята, чем больше я думал об этом, и после прочтения ваших комментариев я понял, что это просто не очень хорошая идея и действительно не будет практичным.

Спасибо

Ответы [ 4 ]

2 голосов
/ 01 июня 2011

Я думаю, что вы должны использовать другой подход и использовать статический метод.

class MyClass
{
    ....
    static function display() { echo 'test'; }
}

MyClass::display();

Вы можете сделать это только с функциями, которые действуют одинаково, независимо от того, какой экземпляр класса. Ваш пример - статический метод, потому что функция всегда будет возвращать test. Если функция должна была использовать переменные экземпляра или методы, вы не можете использовать это.

1 голос
/ 01 июня 2011

Я думаю, вам нужен статический класс / функция .Вы могли бы сделать MyClass::display();.

0 голосов
/ 01 июня 2011

Что вы можете сделать, это сделать свой метод static и вызвать метод непосредственно в классе:

class MyClass
{
    public static function display() { echo 'test'; }
}

MyClass::display();

Кроме этого: «автозагрузка» переменных невозможна.

0 голосов
/ 01 июня 2011

Сделайте это статическим методом. Вам не нужно создавать экземпляр класса для вызова статического метода.

class foo {
    private static $test;

    public static function test() {
        echo 'test';
    }
}

А затем вызвать его как:

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