Вышел большой пост о дженериках в php, почему многие разработчики желают иметь их в инструментарии и возможно ли это в принципе в PHP?
https://sergeymukhin.com/blog/dzeneriki-v-php
https://sergeymukhin.com/blog/dzeneriki-v-php
Sergeymukhin
Дженерики в PHP
Поговорим о дженериках в PHP, целесообразность и сложность их внедрения в существующее ядро языка
PHP 8.3 будет выпущен как обычно в конце ноября 2023 года. Как обычно начинаю пост о новом функционале и устаревании. Итак первое что известно на данный момент:
unserialize(): Вывод E_WARNING ошибок вместо E_NOTICE
До версии PHP 8.3 передача недопустимой строки в функцию unserialize() выдавала всего лишь уведомления PHP ( E_NOTICE) в определенных случаях, например, при синтаксических ошибках в сериализованной строке. Начиная с PHP 8.3 выдается предупреждение E_WARNING. Кроме того, некоторые условия ошибки функции serialize() также изменяются, чтобы выдавать E_WARNING:
https://sergeymukhin.com/blog/chto-novogo-v-php-83
unserialize(): Вывод E_WARNING ошибок вместо E_NOTICE
До версии PHP 8.3 передача недопустимой строки в функцию unserialize() выдавала всего лишь уведомления PHP ( E_NOTICE) в определенных случаях, например, при синтаксических ошибках в сериализованной строке. Начиная с PHP 8.3 выдается предупреждение E_WARNING. Кроме того, некоторые условия ошибки функции serialize() также изменяются, чтобы выдавать E_WARNING:
unserialize("invalid-string");
- PHP Notice: unserialize(): Error at offset 0 of 14 bytes //было
+ PHP Warning: unserialize(): Error at offset 0 of 14 bytes //стало
В идеале невозможность десериализации данной строки должна быть серьезной ошибкой и вызывать исключение. Однако для обеспечения обратной совместимости и упрощения путей обновления уровень ошибок в PHP 8.3 был увеличен, а в будущем возможно его обновление для создания исключений.https://sergeymukhin.com/blog/chto-novogo-v-php-83
Sergeymukhin
Что нового в PHP 8.3
PHP 8.3 был выпущен 23 ноября 2023 года. В нем есть улучшения классов только для чтения, новая функция json_validate(), дополнения к недавно добавленному классу Randomizer, обнаружение переполнения стека и многое другое.