用于检查字符串长度是否大于或小于所需数量的函数

时间:2011-04-03 18:33:53

标签: php strlen

我想创建一个函数来检查字符串的长度是否大于或小于所需的数量:

这样的事情:

function check_string_lenght($string, $min, $max)
{
 if ($string == "")
 {
   return x;   
 }
 elseif (strlen($string) > $max)
 {
   return y;
 } 
 elseif (strlen($string) < $min)
 {
   return z;
 }
 else
 {
   return $string;
 }

}

问题是我不知道该返回什么。我不想返回像'String is too short'这样的东西。可能是一个数字,0 if == ""1如果大于2,如果小于?

这样做的正确方法是什么?

4 个答案:

答案 0 :(得分:6)

您可以像许多比较函数一样返回10-1。在这种情况下,返回值可能具有以下含义:

  • 0:字符串长度在边界内
  • -1:太短了
  • 1:太长了

我认为没有正确的方法。您只需记录并解释返回值。

答案 1 :(得分:4)

我会让函数返回一个布尔值,其中TRUE表示字符串在限制范围内,FALSE表示字符串长度无效并更改函数所在的部分代码使用。

此外,我将重新设计该功能如下:

function is_string_length_correct( $string, $min, $max ) {

    $l = mb_strlen($string);
    return ($l >= $min && $l <= $max);
}

使用该函数的代码部分可能如下所示:

if (!is_string_length_correct($string, $min, $max)) {
    echo "Your string must be at least $min characters long at at 
        most $max characters long";
    return;
}

答案 2 :(得分:0)

如果长度低于要求,则如果超过要求则返回0,如果在范围内,则返回-1,然后返回1

function check_string_lenght($string, $min, $max)
{
 if (strlen($string)<$min)
   return 0;   
 elseif (strlen($string) > $max)
   return -1;
 else
   return 1;
}

答案 3 :(得分:0)

function checkWord_len($string, $nr_limit) {
    $text_words = explode(" ", $string);
    $text_count = count($text_words);
    for ($i=0; $i < $text_count; $i++){ //Get the array words from text
        // echo $text_words[$i] ; "
        //Get the array words from text
        $cc = (strlen($text_words[$i])) ;//Get the lenght char of each words from array
        if($cc > $nr_limit) //Check the limit
        {
            $d = "0" ;
        }
    }
    return $d ; //Return the value or null
}

$string_to_check = " heare is your text to check"; //Text to check
$nr_string_limit = '5' ; //Value of limit len word
$rez_fin = checkWord_len($string_to_check,$nr_string_limit) ;

if($rez_fin =='0')
{
    echo "false";
    //Execute the false code
}
elseif($rez_fin == null)
{
    echo "true";
    //Execute the true code
}