我发现有人写这样的代码:
class Abc
{
public function foo(int $bar) : string {}
}
:
在函数中意味着什么?这是一招还是什么?将string
更改为bool
或array
或int
会产生什么影响?
我只是不明白我们为什么需要: xxx
,何时使用它?
答案 0 :(得分:5)
这是返回类型声明,这是PHP 7引入的一个功能。
冒号后看到的类型是随函数返回的类型。
有两种选择:
默认情况下,返回的值将转换为需要返回的类型
在您的情况下,它将始终转换为字符串。
如果启用了严格类型(通过declare(strict_types=1);
),则输出必须是字符串,否则将引发TypeError。
无论哪种方式:作为开发人员,在这种情况下,您总是确定返回类型是字符串。
定义返回类型不是必须的,所以如果你不想要它,你可以保留它。在这种情况下,返回类型可以是任何东西。
答案 1 :(得分:1)
它声明了函数的返回类型。
function foo (int $bar) : string { }
int $bar
部分表示$ bar参数必须是整数,而: string
部分表示该函数将返回一个字符串。如果函数未传递int或未返回字符串,则将抛出TypeError。
答案 2 :(得分:0)
是返回类型声明。在您的示例中,它表示函数应返回一个字符串。如果返回是可字符串的(例如,定义了__toString()的对象),它将被强制转换为字符串,否则将出错