Будет ли метод в статическом классе и метод статического класса иметь одну и ту же функцию? - PullRequest
1 голос
/ 07 мая 2011

Полагаю, мой вопрос:

static class example1{
    function example1_function(){};     
}

и

class example2{
    static function example2_function(){};
}

приведут к одному и тому же результату, что и example1->example1_function(), и example2->example2_function() будут иметь одинаковую отзывчивость.Будут ли оба определены как статические и могут быть использованы как таковые?

Ответы [ 3 ]

3 голосов
/ 07 мая 2011

PHP не позволяет объявлять статический класс.

Для вызова статического метода необходимо использовать оператор ::.

2 голосов
/ 07 мая 2011

Вы не можете объявить класс как статический класс, как указано здесь другими членами, но есть метод, позволяющий предотвратить превращение класса в объект, вы можете использовать ключевое слово abstract, чтобы указать, что объект не должен создание экземпляра с использованием нового ключевого слова, это хорошо для наследования и т. д.

abstract class Something
{
}

Выполнение new Something вызовет ошибку, сообщающую, что вы не можете создать экземпляр класса, затем вы можете объявить ваши статические методы следующим образом:

abstract class Something
{
    public static function Else()
    {
    }
}

Вы все равно должны объявить ваши методы как static, это просто так.

и тогда вы можете использовать так:

Something::Else();

Надеюсь, это прояснит некоторые вещи

0 голосов
/ 07 мая 2011

Как уже упоминалось в комментариях, ключевое слово static не используется для классов таким образом (синтаксис).

http://php.net/manual/en/language.oop5.static.php

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