我想只使用$ $ $但我有时会收到双倍所以我正在检查它是否为int。有没有更好的方法呢?我的问题是另一个类向它发送数据,我想防止它们不应该发送任何类型..是否可能?
我的代码:
function finTrian($amount, $source, $trian, $realTrian, $pos = -1)
{
if(!is_int($amount))
return;
if($amount < $requiredAmount)
return "E-1019";
$totalTrian = ($trian * $realTrian) / self::T_FACTOR;
...
}
?>
我真的遇到问题,有时应用程序无法正常工作,我需要找到问题所在。有人可以帮帮我吗?
谢谢!!!
答案 0 :(得分:1)
是的,可以这样做..
只需更改您的代码,如下所示:
从:
function finTrian($amount, $source, $trian, $realTrian, $pos = -1)
{
if(!is_int($amount))
return;
if($amount < $requiredAmount)
return "E-1019";
为:
function finTrian(int $amount, $source, $trian, $realTrian, $pos = -1)
{
if($amount < $requiredAmount)
return "E-1019";
如果可能,$ amount参数将转换为int。 @Eiko
在php 7中添加了类型:
bool PHP 7.0.0
float PHP 7.0.0
int PHP 7.0.0
string PHP 7.0.0
答案 1 :(得分:0)
不,没有办法摆脱类型检查。
如果您在另一个答案中指定函数中的类型:
function finTrian(int $amount, $source, $trian, $realTrian, $pos = -1) { ... }
如果可能,$amount
参数将转换为int。
所以用$amount = 3.8
调用它只会使用finTrian(3, ...)
注意:它会被转换为3,而不是4。这与您在问题中的类型检查有根本的不同!