我发现有人写这样的代码:如何在PHP函数使用冒号
class Abc
{
public function foo(int $bar) : string {}
}
是什么:
意味着在一个函数?这是一个骗局还是什么? string
更改为bool
或array
或int
有什么影响?
我只是不明白为什么我们需要: xxx
,以及何时使用它?
我发现有人写这样的代码:如何在PHP函数使用冒号
class Abc
{
public function foo(int $bar) : string {}
}
是什么:
意味着在一个函数?这是一个骗局还是什么? string
更改为bool
或array
或int
有什么影响?
我只是不明白为什么我们需要: xxx
,以及何时使用它?
即返回类型声明,用PHP 7
您在冒号后面看到的类型引入的一个特性,就是将与函数返回的类型。
有两种选择:
默认情况下,返回的值将被转换为需要返回的类型。
在你的情况下,它总是会被转换成一个字符串。
如果严格键入被启用(通过declare(strict_types=1);
),输出需要是一个字符串,否则会引发TypeError。
无论哪种方式:作为开发人员,您始终确信返回类型是字符串。
定义返回类型不是强制性的,所以如果你不需要它,你可以离开它。这种情况下的返回类型可以是任何东西。
感谢您的解释 – user7440009
这是返回类型声明。在你的例子中,它意味着函数应该返回一个字符串。如果返回字符串(例如定义了__toString()的对象),它将被转换为一个字符串,否则会出错
它声明函数的返回类型。
function foo (int $bar) : string { }
的int $bar
部分说,$栏参数必须是整数,而: string
部分表示该函数将返回一个字符串。如果该函数未传递int或不返回字符串,则会引发TypeError。
它只是定义了返回类型。 –
查看手册http://php.net/manual/en/functions.returning-values.php – apokryfos