Когда выходит PHP 8.3, и какие новые возможности он предлагает? На ноябрь 2023 года PHP 8.3 станет последней версией языка программирования для веб-разработки. С различными улучшениями для программистов (такими как объединенные типы, свойства только для чтения и улучшенные сообщения об ошибках), использование их означает, что вам следует выполнить обновление.
Давайте рассмотрим новые возможности PHP с некоторыми примерами и пошаговым руководством по их реализации.
Используя символ |, объединенные типы позволяют указывать параметр или возвращаемое значение с несколькими типами. Например, предположим, у вас есть функция, которая может принимать строку или целое число; вы можете определить ее параметр следующим образом:
function foo(int|string $param) { // ... }
С другой стороны, с пересекающимися типами вы можете определить возвращаемое значение или параметр как комбинацию двух или более типов. Таким образом, возвращаемое значение или параметр должны соответствовать всем типам в пересечении. Давайте рассмотрим пример:
function bar(ArrayAccess&Countable $param): int { // ... }
В этом примере аргумент должен быть объектом, реализующим интерфейсы ArrayAccess и Countable, и функция должна возвращать целое число.
Объединенный тип определяется с использованием символа | и позволяет указывать несколько типов, которыми может обладать параметр или возвращаемое значение.
Пересекающиеся типы, с другой стороны, позволяют вам определить параметр или возвращаемое значение как пересечение двух или более типов. Это означает, что параметры или возвращаемые значения должны удовлетворять всем типам пересечения.
Эта функциональность может быть использована для повышения безопасности и надежности вашего кода, предотвращая непреднамеренные изменения важных данных.
Приведенный ниже пример в PHP 8.3 показывает, как определить свойство только для чтения.
class MyClass
{
public read_only string $name;
public function __construct(string $title)В приведенном выше примере функция __construct
инициализирует свойство $name
только один раз. Его можно определить только как свойство только для чтения.
Когда используются улучшенные сообщения об ошибках, например, при доступе к неопределенному индексу массива, в прошлых версиях PHP вы получали бы сообщение об ошибке вроде:
Notice: Undefined offset: 4 in /путь/к/файлу.php on line 3
Это сообщение об ошибке мало говорит о том, откуда произошла проблема. Однако с улучшенными сообщениями об ошибках в PHP 8.3 вы бы получили следующее более подробное сообщение об ошибке:
Fatal error: Uncaught Error: Cannot use string offset as an array in /путь/к/файлу.php:3 Stack trace: #0 {main} thrown in /путь/к/файлу.php on line 3
Notice: Trying to access array offset on the value of type null in /путь/к/файлу.php on line 3
Это сообщение об ошибке предоставляет трассировку стека, чтобы помочь вам определить источник проблемы, и сообщает вам, что вы пытаетесь использовать смещение строки как массив (одну из многих полезных функций манипуляции текстом в PHP). Кроме того, оно информирует вас о том, что вы пытаетесь получить доступ к значению null из смещения массива.
Готовьтесь к PHP 8.3 Переход на PHP 8.3 является ключевым для разработчиков в свете его последних возможностей и улучшений. Введение объединенных и пересекающихся типов в PHP 8.3 упрощает работу программистов с комплексными типами данных.
Использование свойств только для чтения также повышает надежность кода, предотвращая непреднамеренные изменения важных данных. В целом обновление до PHP 8.3 предоставляет разработчикам доступ к более мощным и адаптивным инструментам для создания высокопроизводительных веб-приложений с использованием фреймворков, таких как Laravel.
Добавить комментарий