Страницы, статьи и новости
Инструменты и плагины
Заготовка заголовок


Описание как пример заготовки. Пример текстового контента для дальнейшей кастомизации шаблона "Index36".

Редактировать шаблон вы можете на свое усмотрение и как вам угодно. Если у вас на это нет времени или недостаточно знаний - вы всегда можете заказать адаптацию шаблона сайта написав мне по контактам на GitHub или в личные сообщения на публичной странице сайта маркетплейса цифровых товаров

Типизация аргументов функции и возвращаемого значения в PHP 8

0 Опубликована Опубликовано в: PHP шпаргалка, код, заметки
Типизация аргументов функции и возвращаемого значения в PHP 8

Типизация аргументов и возвращаемого значения в PHP 8

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


Что такое типизация в PHP

Типизация — это указание типов данных, которые функция принимает в качестве аргументов и/или возвращает. Примеры типов: int, string, array, bool, float, object, callable, iterable и другие.


Основные нововведения PHP 8

1. Объединённые типы (Union Types)

Позволяют функции принимать несколько типов данных:

function setId(int|string \$id): void {
    echo "ID: \$id";
}

2. Тип mixed

Обозначает, что значение может быть любого допустимого типа:

function logValue(mixed \$value): void {
    var_dump(\$value);
}

3. Тип static

Применяется в наследуемых классах. Гарантирует, что возвращается экземпляр текущего класса:

class A {
    public function create(): static {
        return new static();
    }
}

4. Nullable-типы (null, ?)

Позволяют аргументу или возвращаемому значению быть либо заданного типа, либо null:

function getName(?string \$name): ?string {
    return \$name;
}

5. Типизация возвращаемых значений

Теперь можно указать тип значения, которое возвращает функция:

function sum(int \$a, int \$b): int {
    return \$a + \$b;
}

Если функция вернёт не int, возникнет ошибка типа.

6. Строгая типизация (strict_types)

Если активирована строгая типизация:

declare(strict_types=1);

function multiply(int \$x, int \$y): int {
    return \$x * \$y;
}

multiply(5, '3'); // Ошибка типа, так как '3' — строка

Пример на практике:

class User {
    public function setAge(int \$age): void {
        \$this->age = \$age;
    }

    public function getProfile(): array {
        return ['name' => 'John', 'age' => \$this->age];
    }
}

Поддерживаемые типы в PHP 8

ТипНазначение
intЦелое число
floatЧисло с плавающей точкой
stringСтрока
boolЛогический тип
arrayМассив
objectОбъект
callableВызываемая сущность (функция или метод)
iterableПеребираемый тип
mixedЛюбой тип
voidФункция ничего не возвращает
neverФункция не возвращает управление (например, вызывает exit())
staticВозвращает экземпляр текущего класса
имя_классаТип указан как конкретный класс или интерфейс

Заключение

Типизация в PHP 8 — мощный инструмент, улучшающий читаемость, поддержку и надёжность кода. Она позволяет выявлять ошибки на ранней стадии и облегчает командную разработку.

При необходимости можно включить строгую типизацию (declare(strict_types=1);), чтобы PHP проверял типы максимально строго.

 

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям
Аккаунт