PHP:名称空间中的返回值声明

时间:2017-02-19 10:48:03

标签: php php-7

我最近开始学习PHP,因为我习惯使用强类型语言(C ++,Java),我更喜欢使用类型提示和返回类型声明。但是,当我尝试对基元使用返回类型声明时,我得到一个致命的错误,声明我的函数没有返回正确的类型。

这是一个代码示例:

<?php
namespace Foo;

class Bar {

    public function bar() : boolean {
        return true;
    }

}

$bar = new Bar();
$bar->bar();

?>

这将导致致命错误,声明Bar :: bar不返回Foo \ boolean类型的值。所以我尝试通过将函数原型更改为:

来求助于全局命名空间
public function bar() : \boolean

但后来我得到一个致命错误,声明我的函数没有返回boolean类型的值。我想PHP正在全局命名空间中寻找一种名为boolean的类型,而不是原始类型。太好了,所以我该如何表明我希望我的函数返回一个原始类型boolean的值?

1 个答案:

答案 0 :(得分:8)

布尔值的类型提示实际上是bool。试试这个:

<?php
namespace Foo;

class Bar {
    public function bar() : bool {
        return true;
    }
}

$bar = new Bar();
$bar->bar();