Передача int параметру типа? Float приводит к предупреждению PhpStorm

Если у меня есть strict_types и я прохожу в int к функции, которая должна принимать ?float в качестве типа параметра PhpStorm выдает предупреждение, но код по-прежнему выполняется нормально. Интересно, что PhpStorm не выводит предупреждение, если тип параметра просто float (без ?).

Например:

<?
declare(strict_types=1);

function strictTypesTest (?float $float) {
echo $float;
}

strictTypesTest(42);

Последняя строка (strictTypesTest(42);) имеет красное подчеркивание и предупреждающее высказывание Parameter is expected to be 'float|null', 'int' given:

Ожидается, что параметр будет'float|null', 'int' given

Код выполняется нормально, потому что на PHP документы по строгим типам, есть одно исключение из правила строгих типов:

Единственное исключение из этого правила состоит в том, что целое число может быть дано функции, ожидающей float.

Если бы я только положил float как тип параметра (вместо ?float), то PhpStorm не ставит предупреждение.

Почему предупреждение срабатывает только при добавлении ?

0

Решение

Кажется, это ошибка, я подал здесь: https://youtrack.jetbrains.com/issue/WI-38446

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]