Reputation: 43
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
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
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
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 short1
: too longI don't think there is a proper way for this. You just have to document and explain the return values.
Upvotes: 6
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