0

次のコード:

switch ($value) {
    case INF: $x = 'INF';
        break;
    case -INF: $x = '-INF';
        break;
    case NAN: $x = 'NaN';
        break;
    default: break;
}

私が期待したように動作しません。is_infinite()のような関数があることは知っていますが、switch ステートメント内で変数の無限大をチェックすることはできますか?

私の入力は、任意の単純な値にすることができます (つまり、配列でもオブジェクトでもありません)。整数、浮動小数点数、文字列など、何でもかまいません。

4

1 に答える 1

1

switch ステートメント内で変数の無限大をチェックすることはできますか?

いいえ。Switch ステートメントは、式ではなく定数で機能します。

if (is_infinite($value) || is_nan($value)) {
  $x = (string)$value;
}

コードの行数も少なくなります。

于 2013-03-07T14:18:40.897 に答える