-1

さて、私は多くの調査を行ってきましたが、まだこの作業を行うものは何も見つかりませんでした:

isPositive整数を表す 1 つのパラメーターを取り、整数が正の場合は true を返し、整数が負の場合は false を返すPHP 関数を作成します。ちなみに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. 2 つの句のいずれかが失敗した場合、何も返されませんreturn false;。そこにどこかに a があるはずです。NULLいずれかの句が失敗した場合、関数は を返しますNULL !== false
  2. if ((int)$val)は完全に間違っています。型キャストが機能したかどうかを確認していますか? それは役に立ちません。チェックする必要がある$valのは、 が数値か整数かです。これを行う最も簡単な方法はis_intis_floatとを使用することですis_numeric。詳細については、マニュアルページを確認してください。
  3. ($val = NULL)は完全に不要です。誰かが関数を正しく使用していない場合、PHP がエラーをスローするようにします。
于 2012-05-03T01:22:32.993 に答える
4

私は別の質問であなたの質問に答えるつもりです:

ポジティブかネガティブかの定義は?

正の数はゼロより大きいです。

負の数はゼロ未満です。

では、PHP で 2 つの数値を比較するにはどうすればよいでしょうか。

それを行うオペレーターはいますか?

ボーナス: ゼロをどのように処理しますか? ポジティブかネガティブか?

于 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 に答える