ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Вышел PHP 8.3: новые возможности и улучшения

Вышел PHP 8.3: новые возможности и улучшения

PHP 8.3, выпущенный 23 ноября 2023 года, является важным обновлением языка, которое вносит множество новых возможностей и улучшений. В этой статье мы рассмотрим некоторые из наиболее важных изменений, а также примеры того, как их можно использовать.

 

Явная типизация класса constants

Одной из наиболее важных новых возможностей PHP 8.3 является возможность явно указывать тип данных для констант классов. Это делает код более безопасным и понятным.

До PHP 8.3 константы классов всегда имели тип mixed, что означало, что они могли принимать любые значения. Это могло привести к ошибкам, если разработчик не был уверен в типе константы.

В PHP 8.3 константы классов могут иметь любой тип данных, включая примитивные типы, типы объектов и пользовательские типы. Например, мы можем определить следующую константу класса:

class MyClass
{
    public const MAX_VALUE = 100; // int
}

 

Эта константа будет иметь тип int, что означает, что она может принимать только целые числа.

Явное указание типа данных для констант классов может помочь предотвратить ошибки, а также сделать код более понятным. Например, следующий код будет более понятным, чем аналогичный код в PHP 8.2:

// PHP 8.2
$maxValue = MyClass::MAX_VALUE; // mixed

// PHP 8.3
$maxValue = MyClass::MAX_VALUE; // int

 

Глубокое клонирование свойств, доступных только для чтения

Еще одной важной новой возможностью PHP 8.3 является возможность глубокого клонирования свойств объектов, даже если эти свойства помечены как readonly. Это делает код более гибким и безопасным.

До PHP 8.3 свойства, помеченные как readonly, не могли быть клонированы. Это означало, что если мы хотели клонировать объект, содержащий readonly-свойства, мы должны были создать новый объект с теми же значениями readonly-свойств.

В PHP 8.3 свойства, помеченные как readonly, могут быть клонированы с помощью функции clone(). Это позволяет создавать более гибкие и безопасные клоны объектов.

Например, следующий код будет работать в PHP 8.3:

class MyClass
{
    public readonly $readonlyProperty = 100;

    public function __clone()
    {
        clone $this->readonlyProperty; // OK in PHP 8.3
    }
}

 

Дополнения к функциональности случайности

PHP 8.3 также добавляет новые функции для работы со случайными числами. Эти функции делают код более безопасным и эффективным.

Одна из новых функций — это random_int(). Эта функция позволяет генерировать случайное целое число в заданном диапазоне. Например, следующий код будет генерировать случайное целое число от 1 до 100:

$randomNumber = random_int(1, 100);

 

Другая новая функция — это random_float(). Эта функция позволяет генерировать случайное вещественное число в заданном диапазоне. Например, следующий код будет генерировать случайное вещественное число от 0 до 1:

$randomFloat = random_float(0, 1);

 

Эти новые функции могут быть полезны для приложений, которые требуют генерации случайных чисел.

 

Дополнительные возможности

Помимо перечисленных выше новых возможностей, PHP 8.3 также включает в себя следующие изменения:

 

Заключение

PHP 8.3 является мощным и гибким языком, который предоставляет разработчикам множество возможностей для создания эффективных и безопасных веб-приложений.

Exit mobile version