0

次のifステートメントを短くしたいと思います。

 function is_string_length_correct( $string, $min, $max = 0 ) {
    if (is_string($string)) {
        $l = mb_strlen($string);
        if ($max != 0) {
            return ($l >= $min && $l <= $max);
        } else {
            return ($l >= $min);
        }
    }
  }

誰かが私にフォローインの速記がうまくいかない理由を説明できますか?

function is_string_length_correct( $string, $min, $max = 0 ) {
    if (is_string($string)) {
        $l = mb_strlen($string);
        return ($max != 0) ? ($l >= $min && $l <= $max) : ($l >= $min);
    }
 }

ありがとうございました

4

2 に答える 2

3

構文は問題ありません。$max問題は、実行時の値にある可能性があります。0は偽物であるため、整数のゼロと比較しているので、である必要があります($max !== 0)

于 2012-12-28T17:07:40.633 に答える
1

ブール演算子のみを使用して記述することもできます。

return $l >= $min && ($l <= $max || $max == 0);
于 2012-12-28T17:13:12.240 に答える