PHP 类方法返回类型
2022-08-30 15:23:36
是否可以像这样定义返回类型?
public static function bool Test($value)
{
return $value; //this value will be bool
}
是否可以像这样定义返回类型?
public static function bool Test($value)
{
return $value; //this value will be bool
}
由于这个问题仍然出现在搜索引擎结果中,以下是最新的答案:
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 在开发和生产服务器上都可用。
无法在方法/函数级别显式定义返回类型。如前所述,您可以在回车符中强制转换,例如...
return (bool)$value;
或者,您可以在 phpDoc 语法中添加注释,许多 IDE 将从类型完成的角度选取该类型。
/**
* example of basic @return usage
* @return myObject
*/
function fred()
{
return new myObject();
}