【发布时间】:2018-01-03 01:30:38
【问题描述】:
给定代码
<?php
function a(boolean $value){
var_dump($value);
}
a(true);
我收到错误
TypeError: 传递给 a() 的参数 1 必须是 boolean 的实例,boolean given
这是怎么回事?
【问题讨论】:
标签: php types php-7 type-hinting
给定代码
<?php
function a(boolean $value){
var_dump($value);
}
a(true);
我收到错误
TypeError: 传递给 a() 的参数 1 必须是 boolean 的实例,boolean given
这是怎么回事?
【问题讨论】:
标签: php types php-7 type-hinting
boolean 的唯一有效类型提示是 bool。根据documentation boolean 在类型提示中不被识别为bool 的别名。相反,它被视为类名。
int(scalar) 和 integer(class name) 也一样,会报错
TypeError: 传递给 a() 的参数 1 必须是整数实例,给定整数
在这种特定情况下,需要 boolean 类的对象,但传递了 true(bool, scalar)。
有效代码是
<?php
function a(bool $value){
var_dump($value);
}
a(true);
结果是什么
布尔(真)
【讨论】: