【发布时间】:2017-07-08 15:42:08
【问题描述】:
我最近开始学习 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
然后我收到一个致命错误,指出我的函数没有返回布尔类型的值。我猜 PHP 正在全局命名空间中寻找一种称为 boolean 的类型,而不是原始类型。太好了,那么我应该如何表明我希望我的函数返回一个原始类型 boolean 的值?
【问题讨论】:
-
类型是
bool而不是boolean。 -
你也应该把
declare(strict_types=1);作为每个文件的第一行。