Ответ 1
http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration
Внимание
Псевдонимы для указанных выше скалярных типов не поддерживаются. Вместо этого они рассматриваются как имена классов или интерфейсов. Например, использование boolean как параметра или возвращаемого типа потребует аргумента или возвращаемого значения, которое является экземпляром класса или интерфейса логическим, а не типа bool:<?php function test(boolean $param) {} test(true); ?>
Вышеприведенный пример выводит:
Fatal error: Uncaught TypeError: аргумент 1, переданный в test(), должен быть экземпляром логических, булевых данных
Итак, boolean
является псевдонимом для bool
, а псевдонимы не работают в типах. Используйте "настоящее" имя.
Нет никакого сходства между Type Hinting
и Type Casting
- это что-то вроде того, что вы говорите своей функции, тип которой должен быть принят.
в то время как литье типов равно switching
между типами,
Разрешенные броски:
(int), (integer) - cast to integer (bool), (boolean) - cast to boolean (float), (double), (real) - cast to float (string) - cast to string (array) - cast to array (object) - cast to object (unset) - cast to NULL (PHP 5)
в php-type литье (bool) и (boolean) одинаковы.