Я экспериментировал с подсказками типов в PHP и кое-что натолкнулось на некоторые тесты. У меня есть эта функция:
function foobar(string $foo)
{
return gettype($foo);
}
Я экспериментировал с двумя вариантами использования:
echo foobar(4);
echo foobar('hello, world');
Оба эти вывода string
. Это мгновенно звучит странно для меня, потому что я передаю целое число при первом использовании. Я тогда для пинки попробовал добавить:
print_r(foobar(['hello']));
и, конечно же, я получил фатальную ошибку, которую ожидал при первом случае использования.
Взято из здесь показывает, что int отличается от строки:
+=======+==================================+
| int | The parameter must be an integer |
+=======+==================================+
|string | The parameter must be a string |
+=======+==================================+
Так почему string $foo
разрешает мой foobar(4)
и возвращает string
?