4

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

像这样的东西:

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

}

问题是我不知道要返回什么。我不想返回“字符串太短”之类的内容。也许一个数字,0 if == ""如果1大于,2如果小于?

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

4

4 回答 4

6

你可以 return 1,就像很多比较函数一样0-1在这种情况下,返回值可能具有以下含义:

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

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

于 2011-04-03T18:39:15.620 回答
5

我会让函数返回一个布尔值,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;
}
于 2011-04-03T18:40:51.927 回答
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;
}
于 2011-04-03T18:38:14.563 回答
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
}
于 2011-09-03T10:18:16.683 回答