如何在函数中获取特定类型?

时间:2016-10-07 20:15:18

标签: php php-7

我想只使用$ $ $但我有时会收到双倍所以我正在检查它是否为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;

...

}


 ?> 

我真的遇到问题,有时应用程序无法正常工作,我需要找到问题所在。有人可以帮帮我吗?

谢谢!!!

2 个答案:

答案 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。这与您在问题中的类型检查有根本的不同!