[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с strlen
Страницы: 1, 2
Valeriya12
Да... странновато... получаю "Thank you" как бы 10 цифр были введенные.
Но ладно, я знаю, что надо делать. Добавить false условие.

Теперь когда ввожу 0, получаю "Больше 10 цифр нельзя".. как следует! :)

<?php
echo "Enter your ID.";
$ID=trim(fgets(STDIN));

switch ($ID) {
case ((strlen($ID)===false)):
echo "False. You entered less than 10 figures. You need exactly 10.";
break;
case ((strlen($ID)==10)):
echo "Thank you.";
break;
case ((strlen($ID)>10)):
echo "False. You entered more than 10 figures. You need exactly 10.";
break;
case ((strlen($ID)<10)):
echo "False. You entered less than 10 figures. You need exactly 10.";
break;
}
?>
Игорь_Vasinsky
1. echo strlen(false); = 0
2. чё за нелепая конструкция))

echo "Enter your ID.";
$ID=trim(fgets(STDIN));

if(strlen($ID)===false)
echo "False. You entered less than 10 figures. You need exactly 10.";
elseif(strlen($ID)==10)
echo "Thank you.";
elseif(strlen($ID)>10)
echo "False. You entered more than 10 figures. You need exactly 10.";
elseif(strlen($ID)<10)
echo "False. You entered less than 10 figures. You need exactly 10.";



_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Xpund
Valeriya12
Действительно принципиально switch использовать? Если нет, то юзайте if/else


А вот это уже что-то новенькое... Даже логику тяжко отследить)
<?php
echo "Enter your ID.";
$ID=trim(fgets(STDIN));

switch ($ID) {
case ((strlen($ID)===false)):
echo "False. You entered less than 10 figures. You need exactly 10.";
break;
case ((strlen($ID)==10)):
echo "Thank you.";
break;
case ((strlen($ID)>10)):
echo "False. You entered more than 10 figures. You need exactly 10.";
break;
case ((strlen($ID)<10)):
echo "False. You entered less than 10 figures. You need exactly 10.";
break;
}
?>


_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
killer8080
Цитата (Valeriya12 @ 14.02.2014 - 09:10)
Но ладно, я знаю, что надо делать. Добавить false условие.

user posted image

Valeriya12
выкиньте switch неужели не понятно? blink.gif
zelenuy
;)
<?php
$id = 'Вася Пупкин';

if(strlen($id)==10)
echo "Thank you.";
else
echo "Введены не верные данные!";
?>
Игорь_Vasinsky
zelenuy
если в юникоде работать - не корректно будет - нужна будет mb_strlen() (при условии работы с кириллицей)

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
zelenuy
Цитата (Игорь_Vasinsky @ 14.02.2014 - 18:30)
zelenuy
если в юникоде работать - не корректно будет - нужна будет mb_strlen() (при условии работы с кириллицей)

Хех а вы правы, я раньше этого косяка не замечал)
Игорь_Vasinsky
ну это я про распространённую кодировку utf-8 - про остальные не интересовался.

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
zelenuy
Русские символы считает как 2 байта smile.gif вот подстава
Игорь_Vasinsky
да, это давно не секрет уже, года 2-3 уж как точно)

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
zelenuy
Игорь_Vasinsky
Я просто стрлен использовал только для отправки файлов по http, а там такое не соответствие прокатывает)
Valeriya12
killer8080, Xpund, Игорь_Vasinsky

Я всё поняла. Только хотела, что во-первых сработает как следует с "switch", а потом легко можно преобразовывать код на "ifs"...спасибо.
killer8080
Цитата (Valeriya12 @ 15.02.2014 - 08:32)
Только хотела, что во-первых сработает как следует с "switch"

на switch нельзя, хотя бы потому, что в условии юзер должен вводить только цифры wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.