【发布时间】:2018-02-22 09:08:12
【问题描述】:
我有一个 PHP 类,其中我发现了一个函数,例如
public static function success(string $userid, string $message):bool
{
return self::add($userid, $message, 'success');
}
有人能告诉我函数名后面的:bool是什么意思吗?
【问题讨论】:
标签: php oop public-method
我有一个 PHP 类,其中我发现了一个函数,例如
public static function success(string $userid, string $message):bool
{
return self::add($userid, $message, 'success');
}
有人能告诉我函数名后面的:bool是什么意思吗?
【问题讨论】:
标签: php oop public-method
来自documentation(强调我的):
PHP 7 增加了对返回类型声明的支持。与参数类型声明类似,返回类型声明指定将从函数返回的值的类型。可用于返回类型声明的类型与可用于参数类型声明的类型相同。
严格类型也会对返回类型声明产生影响。 在默认的弱模式下,返回的值将被强制转换为正确的类型,如果它们还不是该类型。 strong模式下,返回值必须是正确的类型,否则会抛出TypeError。
【讨论】:
它会强制你的方法的返回值是一个布尔值。
例如如果您的 self::add 方法返回一个字符串,则结果将为真。
【讨论】:
简单来说,就是函数输出的值类型的指标。 这是在 PHP 7 中引入的。如果你尝试输出非 bool 值,则会出现错误。
【讨论】:
它明确指出函数success 将返回一个bool,并且只返回一个bool,从而防止隐式转换等意外返回值。
【讨论】:
:bool 强制函数的返回类型,在你的情况下它是一个布尔值。
<?php
function arraysSum(array ...$arrays): array
{
return array_map(function(array $array): int {
return array_sum($array);
}, $arrays);
}
print_r(arraysSum([1,2,3], [4,5,6], [7,8,9]));
PHP 7 增加了对返回类型声明的支持。与参数类型声明类似,返回类型声明指定将从函数返回的值的类型。可用于返回类型声明的类型与可用于参数类型声明的类型相同。
严格类型也会对返回类型声明产生影响。在默认的弱模式下,如果返回的值还不是正确的类型,它们将被强制转换为正确的类型。 strong模式下,返回值必须是正确的类型,否则会抛出TypeError。
注意: 覆盖父方法时,子方法必须匹配父方法的任何返回类型声明。如果父方法没有定义返回类型,那么子方法可能会这样做。
可以在here找到完整的新功能列表。
【讨论】: