-1

好的,我已经做了很多研究,但仍然没有发现任何东西可以使这项工作:

编写一个调用的 PHP 函数isPositive,该函数接受一个表示整数的参数,当整数为正时返回 true,当整数为负时返回 false。顺便说一句,0是一个正数。

这就是我需要做的。我尝试了不同的东西,但我没有得到任何东西来测试我的数字是正数还是负数。

谢谢你的帮助!

我得到了这个,但是,它不起作用:

function isPositive($val = NULL)    // Add default to save php errors if nothing is passed
{
    if ((int)$val)          // type cast for security
    {
            if ($val >= 0)
            {
                    return TRUE;
            }
    }
}

这是我尝试过的其他代码,但仍然无法正常工作:

function isPositive($number = NULL)
    if ($number = <0)
        return true;
    else
        return false;
4

4 回答 4

4
function isPositive($number) {
    return is_numeric($number) && ($number >= 0);
}

如果您希望该函数仅适用于整数,您可以更改is_numeric为。is_int让我们看看你的函数有什么问题:

function isPositive($val = NULL)    // Add default to save php errors if nothing is passed
{
    if ((int)$val)          // type cast for security
    {
            if ($val >= 0)
            {
                    return TRUE;
            }
    }
}
  1. 如果两个子句中的任何一个子句失败,您都不会返回任何内容,那里应该有一个return false;地方。NULL如果任何子句失败,您的函数将返回, NULL !== false.
  2. if ((int)$val)是完全错误的。您正在检查类型转换是否有效?这没用,您需要检查的是$val数字还是整数,最简单的方法是使用is_int,is_floatis_numeric。查看他们的手册页了解更多信息。
  3. ($val = NULL)完全没有必要。当有人没有正确使用函数时,您希望 PHP 抛出错误。
于 2012-05-03T01:22:32.993 回答
4

我将用另一个问题来回答你的问题:

积极或消极的定义是什么?

正数大于零。

负数小于零。

那么,如何在 PHP 中比较两个数字呢?

有这样的运营商吗?

奖金:你如何处理零?它是积极的还是消极的?

于 2012-05-03T01:14:32.767 回答
0

就像上面有人提到的

$int = (int)-2;

function test( $int ){

    return (bool) ( $int >= 0 );
}

var_dump(test( $int ));
于 2012-05-03T01:21:42.440 回答
-2
function NegativeOrNot($number)
{    
    if ($number >= 0)
        return true;
    else
        return false;
}

很简单。

于 2012-05-03T01:12:17.483 回答