Я создаю белый список, если вы хотите, чтобы пользователь вводил данные. Я зацикливаюсь на утверждениях elseif.Проблема с if/elseif/else
Это мой код:
public function is_valid_data($data)
{
if(strlen($data > 9))
{
$this -> set_message('is_valid_data', 'Field needs to be less than 9 characters');
return FALSE;
}
elseif(strlen($data < 9))
{
$this -> set_message('is_valid_data', 'Field can not be under 9 characters');
return FALSE;
}
elseif((substr($str, 0, 1) !== 'testing') || (substr($str, 0, 1) !== 'test'))
{
$this -> set_message('is_valid_data', 'Please re-submit data!');
return FALSE;
}
elseif(!preg_match("/^[0-9]/", $str))
{
$this -> set_message('is_valid_data', 'Please dont forget about the numbers!');
return FALSE;
}
else
{
return TRUE;
}
}
По какой-то причине, даже если $ данных являются 9 символов первыми, если заявления проходят, то второй один терпит неудачу, и я получаю «Поле не может быть менее 9 символов ', хотя $ data составляет ровно 9 символов. Я возвращаю false, потому что в другом скрипте у меня есть вызов функции is_valid_data ($ data), и если эта функция возвращает false, то она вернет ошибку пользователю. Если он возвращает true, то данные действительны, и мы можем продолжить
Я не могу пошатнуть эту проблему.
Вы хотите сравнить результат 'strlen ($ data)' с 9, у вас есть сравнение внутри вызова функции прямо сейчас: 'strlen ($ data)> 9' - это не то же самое, что' strlen ($ данные <9) '- см. разницу? –
Yea ... Я noob Я даже не заметил вопроса :(Спасибо. – user2406611