Valeriya12
14.02.2014 - 11:10
Да... странновато... получаю "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
14.02.2014 - 11:26
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
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
14.02.2014 - 16:02
Цитата (Valeriya12 @ 14.02.2014 - 09:10) |
Но ладно, я знаю, что надо делать. Добавить false условие. |
Valeriya12выкиньте switch неужели не понятно?
zelenuy
14.02.2014 - 18:24
;)
<?php
$id = 'Вася Пупкин';
if(strlen($id)==10)
echo "Thank you.";
else
echo "Введены не верные данные!";
?>
Игорь_Vasinsky
14.02.2014 - 18:30
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
14.02.2014 - 18:58
Цитата (Игорь_Vasinsky @ 14.02.2014 - 18:30) |
zelenuy если в юникоде работать - не корректно будет - нужна будет mb_strlen() (при условии работы с кириллицей) |
Хех а вы правы, я раньше этого косяка не замечал)
Игорь_Vasinsky
14.02.2014 - 19:02
ну это я про распространённую кодировку 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
14.02.2014 - 19:11
Русские символы считает как 2 байта
вот подстава
Игорь_Vasinsky
14.02.2014 - 19:17
да, это давно не секрет уже, года 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
14.02.2014 - 19:37
Игорь_Vasinsky
Я просто стрлен использовал только для отправки файлов по http, а там такое не соответствие прокатывает)
Valeriya12
15.02.2014 - 10:32
killer8080, Xpund, Игорь_Vasinsky
Я всё поняла. Только хотела, что во-первых сработает как следует с "switch", а потом легко можно преобразовывать код на "ifs"...спасибо.
killer8080
15.02.2014 - 19:10
Цитата (Valeriya12 @ 15.02.2014 - 08:32) |
Только хотела, что во-первых сработает как следует с "switch" |
на switch нельзя, хотя бы потому, что в условии юзер должен вводить только цифры
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.