>> не значит что свойства класса будут объявлены только если вызвать конструктор
Именно это и значит, читайте RFC. Вам будет неявно добавлен вызов parent::__construct()
То, что вы не видите проблем, не значит, что их нет.
Итак, смотрим внимательнее на Сonstructor promotion.
Предположим мы написали нечто вроде:
class A {
public function __construct(public int $x, public int $y) {}
}
Значит ли это, что теперь в любом объекте класса A должны быть свойства $x и $y и они обязаны быть типа int? Причем они обязательно должны быть заданы в конструторе?
Да? Прекрасно!
class B extends A {
public function __construct(public string $z) {}
}
А в объектах класса B будут свойства $x и $y? И какой у них будет тип?
Если да — откуда они взялись? Где они задаются? Как мне их задать в конструкторе? Где проходит их тайп-чек, если я не вызываю A::__construct()? Ах, он теперь неявно вызывается… ну извините, это полная дичь!
Если нет — вы сломали наследование. Вы просто ко всем чертям сломали наследование, на котором держится всё ООП в PHP.
Оба ответа плохие. Это плохой код и ужасная возможность, которой никогда не стоит пользоваться.
>> Решение: строить свои сети, например, в крупных городах с большой абонентской базой
У вас очень наивное представление о российском телеком-рынке. Кто же их туда пустит, свои сети строить?
Я токарь, но я не хочу знать, зачем нужна деталь, которую я точу. Отстаньте от меня со своими чертежами, допусками, процентом брака — я свободный художник! (с)
Нет. Вы очень глубоко ошибаетесь. «Статическая» — это на этапе компиляции. В PHP же любой контроль типов, даже контроль типов свойств классов и объектов — рантаймовый.
В PHP нет ни строгой, ни статической типизации. Нет и не будет.
Тот, кому первому пришла в голову идея назвать рантаймовый контроль типов «типизацией» — будет вечно гореть в аду за обман джуниоров.
от обзора self-hosted систем в сравнении с Zoom'ом и Ко. не отказался бы
Берите наш meethub.ru и пробуйте. Это тот самый BigBlueButton, к которому мы сделали «морду» и сейчас открыли в общий доступ после нескольких лет чисто внутреннего использования.
— Давайте откажемся от исключений!
— Да-да, исключения зло, использование их для управления потоком исполнения надо карать страшными карами!
— Фигня выходит, давайте добавим try чтобы не писать кучу тупого кода на каждый вызов каждой функции?
— Да, давайте…
Это вы мне в образовательных целях?
Спасибо за заботу, но я эту статью знаю практически наизусть, как-никак 15 лет уже на PHP пишу, слежу за прессой.
Но ровно также наизусть я знаю сотню причин, почему статья неактуальна, неточна и просто неправдива.
Именно это и значит, читайте RFC. Вам будет неявно добавлен вызов parent::__construct()
Итак, смотрим внимательнее на Сonstructor promotion.
Предположим мы написали нечто вроде:
Значит ли это, что теперь в любом объекте класса A должны быть свойства $x и $y и они обязаны быть типа int? Причем они обязательно должны быть заданы в конструторе?
Да? Прекрасно!
А в объектах класса B будут свойства $x и $y? И какой у них будет тип?
Если да — откуда они взялись? Где они задаются? Как мне их задать в конструкторе? Где проходит их тайп-чек, если я не вызываю A::__construct()? Ах, он теперь неявно вызывается… ну извините, это полная дичь!
Если нет — вы сломали наследование. Вы просто ко всем чертям сломали наследование, на котором держится всё ООП в PHP.
Оба ответа плохие. Это плохой код и ужасная возможность, которой никогда не стоит пользоваться.
Ну тогда Java — тоже интерпретируемый язык. Тоже компилируется в байт-код и тоже исполняется на виртуальной машине.
И пионеров, путающих асинхронность с поддержкой потоков на уровне языка — тем более переживём. Не первый раз.
Здоровья вам и долгих лет!
P.S. А самого Стогова слабо на подкаст позвать? И в глаза ему сказать, что он фигню делает?
У вас очень наивное представление о российском телеком-рынке. Кто же их туда пустит, свои сети строить?
Типизация в PHP как была динамической и слабой, так и осталась. И нет никаких предпосылок к изменению этого положения.
прекрасный термин, и никого не обманывает
Тот, кому первому пришла в голову идея назвать рантаймовый контроль типов «типизацией» — будет вечно гореть в аду за обман джуниоров.
Берите наш meethub.ru и пробуйте. Это тот самый BigBlueButton, к которому мы сделали «морду» и сейчас открыли в общий доступ после нескольких лет чисто внутреннего использования.
Я мог бы продолжить этот список и дальше, но на ближайшие месяцы вам хватит.
От таких «статей» больше вреда, чем пользы.
— Да-да, исключения зло, использование их для управления потоком исполнения надо карать страшными карами!
— Фигня выходит, давайте добавим try чтобы не писать кучу тупого кода на каждый вызов каждой функции?
— Да, давайте…
Спасибо за заботу, но я эту статью знаю практически наизусть, как-никак 15 лет уже на PHP пишу, слежу за прессой.
Но ровно также наизусть я знаю сотню причин, почему статья неактуальна, неточна и просто неправдива.
Скорее я ненавижу тех, кто на каждом углу заявляет, как он ненавидит PHP.