【问题标题】:Argument X passed to Y must be an instance of boolean, boolean given - PHP7传递给 Y 的参数 X 必须是布尔值的实例,给定的布尔值 - PHP7
【发布时间】: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


    【解决方案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);
    

    结果是什么

    布尔(真)

    【讨论】:

      猜你喜欢
      • 2016-08-10
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 2020-12-11
      • 2015-12-25
      • 1970-01-01
      相关资源
      最近更新 更多