【发布时间】:2015-04-05 03:31:22
【问题描述】:
我有以下 PHP 代码:
protected $number;
public function setIntNumber( int $number ) { /* some operations */ }
public function setFloatNumber( float $number ) { /* the same operations */ }
$number 只能存储 int 或 float 值。我想将这两个函数合并为一个,但主要条件是其他程序员不能输入除 int 或 float 之外的其他参数。我需要这样的东西:
public function setNumber( (int|float) $number ) { /* operations */ }
可以在我的函数声明中完全做到这一点吗?
【问题讨论】:
-
出于好奇我问:)
-
我们在谈论
PHP-7吗?因为在早期的 PHP 版本中,您不能进行标量类型提示。 -
PHP 版本不高于 5.5
-
那么我认为您的第一个问题是您不能对标量类型进行类型提示(请参阅:stackoverflow.com/q/29169252/3933332)
-
你的问题不必问,你问的不是必须的。只需放弃类型提示,您就可以交出您想要的任何参数。然后,如果需要,您可以在函数内部测试参数类型。
标签: php