Как называется этот метод Class :: function ($ params)? - PullRequest
0 голосов
/ 08 июня 2018

Я провел некоторое исследование, но я просто не знаю, как называется этот термин или слово.

Вот пример:

Class Exam {

 public static function test($id)
 {
    return $id;
 }

}

echo Exam::test(1);

Я хочу найти это ..Я не хочу понимать минимизированный метод вызова класса и функции в одну строку.Так же, как Laravel.Я кстати пишу на родном.

1 Ответ

0 голосов
/ 08 июня 2018

Этот вопрос часто возникает при переполнении стека.

Classname::method(); - это просто более короткий способ вызова статического метода в классе.При использовании :: вам не нужно сначала создавать экземпляр класса.Рассмотрим следующее -

Class Classname{
    static public $var = date("F j, Y");

    static public method(){
        return self::$var;
    }
}

echo Classname::method();

$c = new Classname();
echo $c->method();

обе строки эха будут отображать сегодняшнюю дату в формате F j, Y.

Зачем использовать статический метод?Рассмотрите этот пример выше, где у вас есть формат даты, и вы хотите, чтобы это было неизменное значение.Статический метод не имеет состояния.Итак, в примере у нас есть статический метод, обращающийся к статической переменной.Статические свойства не могут получить доступ к классу как объект, как $this.Но вы можете получить доступ к самому классу, если вы обращаетесь к другим статическим свойствам.Classname::$var или self::$var будет действительным.

Я знаю, я вроде не отвечал на вопрос "почему", о котором вы не спрашивали, скажем так.Меня осенило, что мой лучший ответ - «Я не знаю».Я знаю, что такое статический метод или свойство, но на самом деле у меня нет железного примера того, где вы бы конкретно использовали один AND, и в этом же примере объясняется, почему вы ДОЛЖНЫ использовать статический метод, где публичный будет разницей междужизнь и смерть.Я приветствую тех, кто имеет реальный опыт, чтобы опубликовать ответы о том, когда и почему вы бы использовали статический метод, где статическая часть является аксиоматически критической.Я знаю, что это был не настоящий вопрос ОП, но на самом деле, не зная и не понимая цели или необходимости статических методов и свойств, какой смысл вкладывать :: в ваш ежедневный код?

...