【问题标题】:Function to check if string length in greater than or less than required amount检查字符串长度是否大于或小于所需数量的功能
【发布时间】:2011-04-03 18:33:52
【问题描述】:

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

类似这样的:

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

}

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

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

【问题讨论】:

    标签: php strlen


    【解决方案1】:

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

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

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

    【讨论】:

    • @johnathanross:你什么意思?空字符串太短,因为它的长度是0
    【解决方案2】:

    我会让函数返回一个布尔值,其中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;
    }
    

    【讨论】:

      【解决方案3】:

      如果长度小于要求则返回 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;
      }
      

      【讨论】:

        【解决方案4】:
        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
        }
        

        【讨论】:

          猜你喜欢
          • 2016-10-10
          • 1970-01-01
          • 2020-05-03
          • 1970-01-01
          • 2014-08-13
          • 1970-01-01
          • 2023-01-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多