【问题标题】:PHP object functionName():boolPHP 对象函数名():bool
【发布时间】: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


    【解决方案1】:

    来自documentation(强调我的):

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

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

    【讨论】:

      【解决方案2】:

      它会强制你的方法的返回值是一个布尔值。

      例如如果您的 self::add 方法返回一个字符串,则结果将为真。

      【讨论】:

        【解决方案3】:

        简单来说,就是函数输出的值类型的指标。 这是在 PHP 7 中引入的。如果你尝试输出非 bool 值,则会出现错误。

        【讨论】:

          【解决方案4】:

          它明确指出函数success 将返回一个bool,并且只返回一个bool,从而防止隐式转换等意外返回值。

          【讨论】:

            【解决方案5】:

            :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找到完整的新功能列表。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2022-11-05
              • 2013-06-01
              • 1970-01-01
              • 1970-01-01
              • 2020-07-29
              • 1970-01-01
              • 1970-01-01
              • 2019-08-06
              相关资源
              最近更新 更多