不是PHP中的数字,收到错误消息

时间:2017-04-04 20:44:37

标签: php function

我正在用PHP编写一个函数。此函数将采用1个整数参数,计算之前和之前所有数字的总和,并返回结果。例如,如果我将其传递给“10”,它将返回总和1 + 2 + 3 + 4等,直至并包括10.

如果传递的数字是负数,或者不是数字,我应该返回false。现在这就是我的问题所在。如果我将-1作为值传递,则没有任何反应,如果我传递一个字符串,我会收到以下错误:“警告:is_nan()期望参数1为double,字符串在/ nfs / home / h / h /中给出第11行的Sum.php你好“

似乎无法弄清楚如何解决这个问题。这是我的代码:

        function findSummation($aNum)
        {
            if(is_nan($aNum) || $aNum < 0)
            {
                return false;
            }

            $result = $aNum;

            while($aNum > 0)
            {
                $result += --$aNum;
            }
            return $result;
        }

另外一个侧面问题,这种练习可以使用递归的概念来完成。 PHP支持递归吗?

2 个答案:

答案 0 :(得分:4)

is_nan()没有按照您的想法行事。请改用is_int()

答案 1 :(得分:0)

Gauss是你的朋友,你不需要递归:

function findSummation($aNum)
{
    if( !is_int($aNum) || $aNum < 0 )
    {
        return false;
    }
    return $aNum*($aNum + 1)/2;
}

另见wikipedia