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

Kri*_*abó 4 php php-7

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

这是一个代码示例:

<?php
namespace Foo;

class Bar {

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

}

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

?>
Run Code Online (Sandbox Code Playgroud)

这将导致致命错误,声明Bar :: bar不返回Foo\boolean类型的值.所以我尝试通过将函数原型更改为:来求助于全局命名空间:

public function bar() : \boolean
Run Code Online (Sandbox Code Playgroud)

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

Ric*_*ner 8

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

<?php
namespace Foo;

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

$bar = new Bar();
$bar->bar();
Run Code Online (Sandbox Code Playgroud)