给定代码
<?php
function a(boolean $value){
var_dump($value);
}
a(true);
我收到错误
TypeError:传递给a()的参数1必须是boolean的实例,boolean given
这里发生了什么?
答案 0 :(得分:18)
只有boolean
的有效类型提交为bool
。根据{{3}} boolean
,在类型提示中未被识别为bool
的别名。相反,它被视为类名。
同样适用于int
(标量)和integer
(类名),这将导致错误
TypeError:传递给()的参数1必须是整数的实例,给定的整数
在这种特定情况下,期望类boolean
的对象,但传递true
(bool,标量)。
有效代码是
<?php
function a(bool $value){
var_dump($value);
}
a(true);
结果是
BOOL(真)