2014-11-22 5 views
0

Я использую следующий код для проверки: 1. Названия меньше, чем 2 символов 2 Имени больше, чем 40 символов 3. Название содержит только буквы алфавитаphp-ctype_alpha не работает?

if (strlen($name<2) || strlen($name>40) || !ctype_alpha($name)) { 
    $output = json_encode(array('type' => 'error', 'text' => 'Your name seems to be invalid')); 
    die($output); 
} 

Он всегда возвращает Ваших имя кажется недопустимым, если я набираю что-нибудь, например. Ashish.

Что случилось?

+0

Вы пытаетесь взять длину строки логического выражения ... – CBroe

+0

Нет, это не так. Исправьте проблему strlen - вы хотите получить длину имени и сравнить его с числом потом, а не наоборот, как вы делаете прямо сейчас - вы проверяете, больше ли имя больше 2, а затем пытается возьмите длину этого результата, что, конечно, не имеет никакого смысла. – CBroe

ответ

1

Условия strlen($name<2) должна быть strlen($name)<2

Каких изменения коды на

$name = "HelloWorld"; 
if (strlen($name)<2 || strlen($name)>40 || !ctype_alpha($name)) { 
    $output = json_encode(array('type' => 'error', 'text' => 'Your name seems to be invalid')); 
} else { 
    $output = json_encode(array('type' => 'success', 'text' => 'OK')); 
} 
var_dump($output); 

Вот результат этого кода: http://3v4l.org/1oAXJ

Смежные вопросы