Articles of late static binding

Тип возврата «self» в абстрактном классе PHP

PHP 7.1 В настоящее время я пытаюсь создать абстрактный класс, чтобы обеспечить и определить и частично реализовать функциональность своих «дочерних классов». Здесь я использую следующую конструкцию: abstract class Parent { public static function fromDB(string $name = '') { $instance = new static(); if (!empty($name)) { $instance->setName($name)->read(); } return $instance; } public abstract function read(); public […]

static :: vs. self :: – есть ли недостатки?

В этом вопросе StackOverflow я узнал, что self:: не было наследованием, когда static:: was (в PHP). Когда дело доходит до определения группы констант внутри класса, если вы хотите переопределить эти константы в подклассе для изменения по умолчанию «поведения», становится необходимо использовать static:: так, чтобы метод родительского класса, который ссылается на константу , чтит «переопределение». В […]

поздняя статическая привязка в PHP

Я читаю руководство по php о функции LSB, я понимаю, как он работает в статическом контексте, но я не совсем понимаю его в нестационарном контексте. Пример в руководстве: <?php class A { private function foo() { echo "success!\n"; } public function test() { $this->foo(); static::foo(); } } class B extends A { /* foo() will […]

Зачем возвращать новый статический? (PHP)

Почему некоторые люди создают один метод, который возвращает новый статический элемент вместо того, чтобы сделать все методы статическими? В чем причина того, что этот метод возвращает новый статический ? Я не спрашиваю, в чем разница между статикой и самостью, или тем, что статично и само по себе. Например, вот один простой класс: <?php class Expression […]