传递给 Y 的参数 X 必须是布尔值的实例,给定的布尔值 - PHP7
Posted
技术标签:
【中文标题】传递给 Y 的参数 X 必须是布尔值的实例,给定的布尔值 - PHP7【英文标题】:Argument X passed to Y must be an instance of boolean, boolean given - PHP7 【发布时间】:2018-01-03 01:30:38 【问题描述】:给定代码
<?php
function a(boolean $value)
var_dump($value);
a(true);
我收到错误
TypeError: 传递给 a() 的参数 1 必须是 boolean 的实例,boolean given
这是怎么回事?
【问题讨论】:
【参考方案1】: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);
结果是什么
布尔(真)
【讨论】:
以上是关于传递给 Y 的参数 X 必须是布尔值的实例,给定的布尔值 - PHP7的主要内容,如果未能解决你的问题,请参考以下文章
传递给验证器()的 Laravel 参数 1 必须是 Illuminate\Http\Request 的实例,给定数组
传递给方法的 Laravel 错误参数 1 必须是 App\Model 的实例,给定的 Illuminate\Database\Eloquent\Collection 的实例
传递给 myFunction() 的参数 1 必须是字符串的实例,给定的字符串,调用
传递给 App\Http\Controllers\HomeController::productDetail() 的参数 2 必须是 App\Product 的实例,给定字符串