PHP 类方法返回类型

2022-08-30 15:23:36

是否可以像这样定义返回类型?

public static function bool Test($value)
{
      return $value; //this value will be bool
}

答案 1

由于这个问题仍然出现在搜索引擎结果中,以下是最新的答案:

PHP 7 实际上根据此 RFC 为函数/方法引入了正确的返回类型

以下是上面链接的手册中的示例:

function sum($a, $b): float {
    return $a + $b;
}

或者,在更一般的表示法中:

function function_name(): return_type {
    // some code
    return $var // Has to be of type `return_type`
}

如果返回的变量或值与返回类型不匹配,PHP 会将其隐式转换为该类型。或者,可以通过 为文件启用严格键入,在这种情况下,类型不匹配将导致类型错误异常declare(strict_types=1);

就这么简单。但是,请记住,您需要确保 PHP 7 在开发和生产服务器上都可用。


答案 2

无法在方法/函数级别显式定义返回类型。如前所述,您可以在回车符中强制转换,例如...

return (bool)$value;

或者,您可以在 phpDoc 语法中添加注释,许多 IDE 将从类型完成的角度选取该类型。

/**
 * example of basic @return usage
 * @return myObject
 */
function fred()
{
    return new myObject();
}

推荐