johnathan ross
johnathan ross

Reputation: 43

Function to check if string length in greater than or less than required amount

I want to create a function to check if the length of a string is greater than or less than a required amount:

Something like this:

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

}

The problem is I don't know what to return. I don't want to return something like 'String is too short'. Maybe a number, 0 if == "", 1 if greater than, 2 if less than?

What would be the proper way of doing this?

Upvotes: 4

Views: 27563

Answers (4)

Adrian
Adrian

Reputation: 11

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
}

Upvotes: 0

Anax
Anax

Reputation: 9372

I would have the function return a boolean value, where TRUE would mean that the string is within limits and FALSE would mean that the string length is invalid and change the part of code where the function is used.

Furthermore, I would redesign the function as following:

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

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

The part of code where the function is used could look like this:

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

Upvotes: 5

Felix Kling
Felix Kling

Reputation: 816394

You can return 1, 0 and -1 like a lot of comparison functions do. In this case the return values could have these meanings:

  • 0: The string length is inside the bounds
  • -1: too short
  • 1: too long

I don't think there is a proper way for this. You just have to document and explain the return values.

Upvotes: 6

Sourav
Sourav

Reputation: 17530

if the length is lower than required then return 0 if more than required then -1 if within range then 1

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

Upvotes: 0

Related Questions