PHP对象functionName():bool

时间:2017-09-13 15:17:33

标签: php oop public-method

我有一个PHP类,因为我找到了一个函数,例如

public static function success(string $userid, string $message):bool
{
    return self::add($userid, $message, 'success');
}

有人可以告诉函数名后的:bool是什么意思吗?

5 个答案:

答案 0 :(得分:1)

: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增加了对返回类型声明的支持。与参数类型声明类似,返回类型声明指定将从函数返回的值的类型。返回类型声明可以使用相同的类型,可用于参数类型声明。

     

严格键入也会对返回类型声明产生影响。在默认的弱模式下,如果返回的值不是那种类型,则它们将被强制转换为正确的类型。在强模式下,返回的值必须是正确的类型,否则将抛出TypeError。

     

注意:   覆盖父方法时,子方法必须匹配父方法上的任何返回类型声明。如果父级没有定义返回类型,则子方法可以这样做。

可以找到here的完整新功能列表。

答案 1 :(得分:0)

来自documentation(强调我的):

  

PHP 7增加了对返回类型声明的支持。与参数类型声明类似,返回类型声明指定将从函数返回的值的类型。返回类型声明可以使用相同的类型,可用于参数类型声明。

     

严格键入也会对返回类型声明产生影响。 在默认的弱模式下,如果返回值不属于该类型,则会将其强制转换为正确的类型。在强模式下,返回的值必须是正确的类型,否则将抛出TypeError。

答案 2 :(得分:0)

它明确指出函数success将返回bool而只返回bool,从而通过隐式强制转换等方式阻止意外的返回值。

答案 3 :(得分:0)

简单地说,它是函数输出的值类型的指示符。 这是在PHP 7中引入的。如果您尝试输出bool值以外的其他值,则会出现错误。

答案 4 :(得分:0)

它会强制你的方法的返回值为布尔值。

e.g。如果你的self :: add方法返回一个字符串,那么结果将为1表示true。