如何在PHP函数中使用冒号

时间:2017-01-19 09:16:49

标签: php

我发现有人写这样的代码:

class Abc
{
    public function foo(int $bar) : string {}
}

:在函数中意味着什么?这是一招还是什么?将string更改为boolarrayint会产生什么影响?

我只是不明白我们为什么需要: xxx,何时使用它?

3 个答案:

答案 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()的对象),它将被强制转换为字符串,否则将出错