2

このphpメソッドを圧縮して、コードを減らしながら読みやすく機能させるにはどうすればよいですか? このコードで何を変更しますか?

public function charCount($string, $max, $min) {

    $stringCount = strlen($string);

    if(isset($max) || isset($min)) {
        //Testing Max Chars
        if($stringCount > $max) {
            return 'String length: ' . $stringCount . "<br />
                    Max Chars: " . $max . "<br />
                    Error: To Long";


        }
        else if($stringCount < $min) {
            return 'String length: ' . $stringCount . "<br />
                        Min Chars: " . $max . "<br />
                        Error: To Short";
        }
        else {
            return true;
        }
    }

    else {
        return true;
    }
}
4

4 に答える 4

4

まず、boolean を返す文字列を返すかを選択しますが、両方は選択しません。その理由は、ホモジェン インターフェイスを使用するためです。

ただしfalse、エラーが発生した場合に使用できます。

私は次のようなものに行きます:

function charCount($string, $min = null, $max = null) {
    $length = strlen($string);

    $result = false;

    if ($max && $length > $max) {
        $result = sprintf('String length: <br />Max Chars: <br />Error: To Long', $length, $max);
    }

    if ($min && $length < $min) {
        $result = sprintf('String length: <br />Min Chars: <br />Error: To Short', $length, $min);
    }

    return $result;
}
于 2012-05-10T18:34:23.160 に答える
3
public function charCount($string, $max = false, $min = false) {

    $stringCount = strlen($string);

    if($max!==false && $stringCount > $max){
        return 'String length: ' . $stringCount . "<br />Max Chars: " . $max . "<br />Error: To Long";
    }

    if($min!==false && $stringCount < $min){
        return 'String length: ' . $stringCount . "<br />Min Chars: " . $min . "<br />Error: To Short";
    }

    return true;
}
于 2012-05-10T18:24:38.343 に答える
0
public function charCount($string, $max, $min) {

$stringCount = strlen($string);

if(isset($max) || isset($min)) {
    $return_value = '';
    //Testing Max Chars
    if($stringCount > $max) {
        $return_value = 'String length: ' . $stringCount . "<br />
                Max Chars: " . $max . "<br />
                Error: Too Long";


    }
    else if($stringCount < $min) {
        $return_value = 'String length: ' . $stringCount . "<br />
                    Min Chars: " . $min . "<br />
                    Error: Too Short";
    }
    return $return_value;
}
return true;
}
于 2012-05-10T18:25:21.290 に答える
0

私は次のように書きます:

public function charCount($string, $max = false, $min = false) {

    $stringCount = strlen($string);

    if (false !== $max && $stringCount > $max) {
        //Testing Max Chars
        return 'String length: ' . $stringCount . "<br />
                Max Chars: " . $max . "<br />
                Error: To Long";
    } else if (false !== $min && $stringCount < $min) {
        return 'String length: ' . $stringCount . "<br />
                    Min Chars: " . $max . "<br />
                    Error: To Short";
    } else {
        return true;
    }
}

それ以外はいいと思います。パフォーマンスが本当に問題でない限り、可読性は常に何よりも優先されるべきです。この場合、if-else 条件を単純化すると読みやすくなり、付随的に行数も減りますが、後者は重要ではないと私は主張します。また、デフォルト値。

于 2012-05-10T18:25:39.997 に答える