PHP7: 标量 return 类型声明不应该接受整数吗?
PHP7: shouldn't a scalar return type declaration accept integer?
我正在实现一个 Iterator 接口,如果我实现它返回标量(遵循参考 http://php.net/manual/en/class.iterator.php),我得到这个错误:
TypeError: Return value of Collection::key() must be an instance of
scalar, integer returned
class 实现:
class Collection implements \Iterator
{
public function key(): \scalar
{
return key($this->colecao);
}
// other methods implementations...
}
根据 PHP 参考,整数应被视为标量值 (http://php.net/manual/en/migration70.new-features.php):
Scalar type declarations come in two flavours: coercive (default) and
strict. The following types for parameters can now be enforced (either
coercively or strictly): strings (string), integers (int),
floating-point numbers (float), and booleans (bool).
我的代码中有什么错误吗?你会认为这是一个错误吗?
感谢您的解释!
PHP 没有称为 \scalar
的类型。 PHP 仅支持 those 类型。你的 \scalar
类型看起来像是另一个 class。
我正在实现一个 Iterator 接口,如果我实现它返回标量(遵循参考 http://php.net/manual/en/class.iterator.php),我得到这个错误:
TypeError: Return value of Collection::key() must be an instance of scalar, integer returned
class 实现:
class Collection implements \Iterator
{
public function key(): \scalar
{
return key($this->colecao);
}
// other methods implementations...
}
根据 PHP 参考,整数应被视为标量值 (http://php.net/manual/en/migration70.new-features.php):
Scalar type declarations come in two flavours: coercive (default) and strict. The following types for parameters can now be enforced (either coercively or strictly): strings (string), integers (int), floating-point numbers (float), and booleans (bool).
我的代码中有什么错误吗?你会认为这是一个错误吗?
感谢您的解释!
PHP 没有称为 \scalar
的类型。 PHP 仅支持 those 类型。你的 \scalar
类型看起来像是另一个 class。