php 7.0 typehint:整数和默认值

时间:2016-12-07 16:11:04

标签: php php-7

我刚刚更新了我的应用程序,使用php7 typehints作为标量类型。当我运行我的单元测试时,我收到了这个错误:

  

PHP致命错误:具有类类型的参数的默认值在第23行的xxx.php中只能为NULL

错误在于此功能:

public function call(string $url, integer $timeout = 30)
{
    // some code...
}

如果我将integer替换为int,则错误消失。我总是听说int和integer是一样的我在文档中看不到任何与此相关的内容...

php错误似乎表示整数是一个类而不是标量类型。

此外,((int) 1) === ((integer) 1)返回true,再次表明int和integer是相同的

我使用的是php 7.0.8

1 个答案:

答案 0 :(得分:12)

根据文档,这些是有效的类型:

Class/interface name
self
array
callable
bool
float
int
string

还有这个:

  

警告

     

不支持上述标量类型的别名。相反,他们   被视为类或接口名称。例如,使用boolean as   参数或返回类型将需要参数或返回值   这是类或接口boolean的实例,而不是   输入bool。

来源:http://php.net/manual/en/functions.arguments.php#functions.arguments.type-declaration