PHP по умолчанию использует слабую (нестрогую) типизацию - автоматически приводит типы при необходимости. Например, строка "5" + 3 дает 8.
Строгий режим включается директивой в начале файла:
declare(strict_types=1);
В строгом режиме PHP не выполняет неявное приведение типов для аргументов функций и возвращаемых значений. Если функция ожидает int, а получает string - будет TypeError.
Важно: директива действует на файл, из которого вызывается функция, а не на файл, где функция объявлена. Арифметические операции и сравнения по-прежнему выполняют приведение типов.