Pages, Articles & News
Tools & Plugins
Example / Placeholder Title


Description as an example placeholder. Sample text content for further customization of the "Index36" template.

You are free to edit and customize the template however you like. If you don’t have time or enough knowledge — you can always order template adaptation by contacting me via GitHub or private messages on the digital goods marketplace.

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

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

 

No comments yet
Only registered users can post new comments
Account