Типизация аргументов функции и возвращаемого значения в 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 проверял типы максимально строго.

 

2 minutes read Sodium Carbonate

Comments (0)

No comments yet
Only registered users can post new comments

Content author

webitproff

Offline

Sodium Carbonate

Last logged: 2026-07-19 01:57

  • Page published: 2025-07-21 08:18
  • Last update: 2025-07-21 08:18

Similar pages

Истинные и ложные значения в PHP
1 В PHP любое значение можно интерпретировать как истину (true) или ложь (false), особенно в условиях (if, while и т.
Функции в PHP. Определение и вызов функций
2 Функция – это блок кода, который можно многократно вызывать.Пример функции:function sayHello() { echo "Привет,
Функции в PHP. return
3 Функция может возвращать результат.function sum($x, $y) { $result = $x + $y; return $result; } $result =
Функции в PHP. Глобальные и локальные переменные
4 🔹 Переменные внутри функции – локальные (недоступны снаружи).function example() { $x = 10; // Локальная
Функции по работе с массивами: in_array(), array_merge() и т.д.
5 Функции по работе с массивамиФункцияОписаниеПримерarray_push()Добавляет элемент в конецarray_push($arr,