low*_*nts 7 php return-type php-7
我想尝试PHP 7的返回类型声明(我在Windows上使用PHP 7RC3用于此目的).
我想从一件非常简单的事情开始:
function getme() : integer
{
return 434;
}
echo getme();
Run Code Online (Sandbox Code Playgroud)
但这给了我一个致命的错误:
致命错误:未捕获TypeError:getme()的返回值必须是整数的实例,返回整数
然后我也尝试转换返回值,但是
return (integer) 434;或者return (int) 434;给我同样的错误;
最后我也尝试过:
function getme() : integer
{
$i = 434;
return (integer) $i;
}
echo getme();
Run Code Online (Sandbox Code Playgroud)
结果相同.
我究竟做错了什么?
或者我在这里误解了什么?
感谢您的任何解释和帮助!
更新
这就是为什么我认为我必须使用integer而不是int(特别注意Toby Allen):
来自https://wiki.php.net/rfc/return_types:
无效使用示例(...)
// Int is not a valid type declaration
function answer(): int {
return 42;
}
answer();
Run Code Online (Sandbox Code Playgroud)
Jua*_*ett 14
没有添加新的保留字.名称int,float,string和bool被识别并允许作为类型声明,并且禁止用作类/接口/特征名称(包括use和class_alias).
来自:https://wiki.php.net/rfc/scalar_type_hints_v5
TL/DR:
function getme() : int
{
return 434;
}
echo getme();
Run Code Online (Sandbox Code Playgroud)