Коротко: строгая типизация в PHP (type hints для аргументов, возвращаемых значений и свойств с 7.4) проверяет типы в рантайме и делает код надёжнее — осваивать стоит сразу.

Объявления типов (строгая типизация) в PHP — это указание типов для аргументов функций, возвращаемых значений и, начиная с PHP 7.4, для свойств класса. Во время исполнения PHP проверяет, что значение точно соответствует объявленному типу, иначе бросает исключение. Разберём, зачем это нужно и почему это хорошо.

В объявлениях типов можно использовать все поддерживаемые PHP типы, кроме ресурсов (resource). Детали есть в официальной документации, а мы разберём смысл.

В простейшем виде типизация функции выглядит так:

<?php

class Test
{
    /** @var int $currentChunk */
    private int $currentChunk = 1;

    /**
     * @param Filter $filter
     * @param int $limit
     * @param int $offset
     * @return array
     */
    public function getSomeDataFromDatabase(Filter $filter, int $limit, int $offset): array
    {
        return [];
    }
}

Здесь на вход функции подаётся класс Filter и два параметра типа int, а на выходе возвращается массив.

Зачем нужна строгая типизация?

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

Сравним две ситуации на примере класса Facade с методами для работы с неким модулем. Первая: методы объявлены, но типы входных параметров не указаны — разработчику приходится лезть внутрь метода, чтобы понять, в каком виде передавать данные, иначе велик риск ошибиться и ловить 500-е. Вторая: код строго типизирован, указаны все входные и выходные типы — лезть «под капот» уже не нужно, сразу понятно, что передать и что ожидать в ответ. Профит.

И в заключение: PHP с каждой версией делает типизацию всё строже. Поэтому есть смысл освоить этот несложный аспект сразу и применять, не дожидаясь дня, когда он станет обязательным. Если хотите навести порядок в типизации и архитектуре проекта — помогу на консультации.