Строгий режим в PHP, включенный директивой declare(strict_types=1);, влияет на то, как движок PHP обрабатывает приведение типов при вызовах функций и методов.
Без строгого режима (по умолчанию) PHP выполняет неявное приведение типов. Например, если функция ожидает аргумент типа int, а ей передается строка "123", PHP попытается преобразовать строку в целое число.
Со строгим режимом PHP не выполняет неявное приведение типов для скалярных типов (int, float, string, bool). Если тип переданного значения не совпадает с объявленным типом параметра, будет выброшена ошибка TypeError.
Важно:
declare(strict_types=1); действует только для файла, в котором он объявлен. При включении в одном файле он не влияет на другие файлы, которые его включают (require/include), если в самих этих файлах не объявлен строгий режим.Пример:
Без строгого режима (поведение по умолчанию):
php
Со строгим режимом:
php
Преимущества использования строгого режима:
Недостаток: