Комментарии 8
Пожалуй, дженериков иногда не хватает. Где можно я делаю так для IDE
/**@return User[] */
Сейчас уже можно использовать подобие дженериков с помощью PHPStan/Psalm
Phpstorm уже хорошо с ними работает, а сами инструменты будут ругаться при неправильном использовании. Уже около года активно используем
Почему в PHP нет дженериков?
Потому что php интерпритируемый язык, а проверка типа в runtime — это дорого. Это в «условном rust» можно неделю компилировать, и на выходе получить быстрый код, потому что весь вывод типов был выполнен в ходе компиляции и в runtime не производится. В php такое не прокатит.
Deleted
Почему не возможен? Возможен!.
Особенность в том как оно возможно. с одной стороны дженерики могут быть удаляемыми (игнорируемые) интепретатором. И в этом случае проверку типов дженериков будет производить кто? Правильно! IDE. А нам больше и не надо на первом этапе. В 99% случаев от дженериков требуется проверка на этапе написания кода.
Теоретически дженерики могут быть полностью интепретируемыми, но это врят ли возможно, но и в PHP есть компилируемый режим работы. Я забыл как этот режим называется, но знаю что он точно есть. Так что в этом режиме дженерики тоже не помогут?
Дженерики в пхп Это конечно хорошо. Но есть более востребованные фичи. Например я бы предпочел переопределение операторов (на примере gmp)
Что бы можно было ссумировать (и другие арифметические операции) используя инстансы классов.
Дженерики в PHP