PHP 字符序列检查功能

  • 本文关键字:功能 字符 PHP php
  • 更新时间 :
  • 英文 :


我将如何压缩这个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;
    }
}

首先,我会在返回布尔值字符串之间进行选择,但不能同时返回两者,原因是要有一个均匀的接口。

但是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;
}
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;
}
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;
}

我会这样写:

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 条件有助于可读性,顺便也减少了行数,但我认为后者并不重要。此外,默认值。

最新更新