Подсажите что делает тот скрипт...а там дальше будем разбираться!!!

  • Автор темы Автор темы RAIDER
  • Дата начала Дата начала

RAIDER

Guest
Подсажите что делает тот скрипт...а там дальше будем разбираться!!!

Я понимаю что на этом форуме книги не обсуждаются... но по чем-то надо же учить ПХП, вотя и учу не важно какая книга, но вот есть скрит, скажите мне что он должен вывести..Заранее спасибо за точто к новичкам относитесь снисходительно.:)

<?
$age=21;
switch ($age) {
case 20: echo "Вам двадцать лет\r\n";
case 21: echo "Вам двадцать один год\r\n";
case 22: echo "Вам двадцать два года\r\n";
default: "Вам $age лет\n\r";
}
?>
 
а может стоит самому попробовать запустить его, и подумать, почему вывелось именно это? для тебя это будет гораздо полезнее.
 
Да дело не в этом я как поинмаю тут должно вывестись:

case 21: echo "Вам двадцать один год\r\n";
case 22: echo "Вам двадцать два года\r\n";

Правильно?
 
ТОесть дефаулт он выполняет тольков том случае если case не совпадает с значением выражения...а так как выражение равно 21 то он начнет выполнять с case 21.
 
что значит "выполнять с"?
почему ты считаешь, что оно выполняет несколько операций?
 
ну и что, что не стоит?
при чем десь вообще брейк?
почему ты считаешь, что после совпадения должно начать исполняться? почему до - не выполняется, а после - должно, по-твоему?
при 22 условие выполняется?

почему ты не запустишь и не выполнишь сам?
 
Потому что сначала вычисляется занчение выражения потом оно сравнивается со значениями case и если они совпадаюон начинает выполнять все последующие команды....

При 22 выполняется но выводиться только эта срока:

case 22: echo "Вам двадцать два года\r\n";
а когда указываешь допустим $age=66;
то должен выполняться оператор после default, по крайней мере я так поянл из книги...

Фанат
И еще такой вопрос, я смотрел на форуме...поповоду перевода строки у меня вот этак комбинаха которая в этом скрипте не работает...:(
 
должен выполняться оператор после default, по крайней мере я так понял из книги...
может быть.
я вообще с этим оператором case никогда в жизни не работал.

по поводу перевода строки срочно идем читать ОЧЕНЬ СТРАШНОЕ ЗАМЕЧАНИЕ
 
Спасибо...лано...пошел читать....
Я думаю еще тут появлюсь...:)
 
а че читать-то?
я все понять не могу - почему бы не запустить?
ты с компа в инет выходишь, форум читаешь?
почему не поставить на комп софт?
или на худой конец на бесплатном хостинге сайтсделать для опытов?
 
ТОесть мне просто использовать <br> прально?
 
Насчет case'ов.
RAIDER - выкинь эту книжку подальше. Если они забыли вставить 3 break'а, то это уже чересчур.
В php, как и в Cях, в switch'е выполняются все операторы, начиная с первого, который подходит case'у.
И выполняется до первого break'а.
Вывод для твоего случая:
Код:
Вам двадцать один год
Вам двадцать два года
Вам 21 лет
 
rotoZOOM Ты не прав выведет "Вам двадцать один год Вам двадцать два года" т. е. либо до break, либо до default. У меня в одной книжке тоже был такой пример и там было всё это описано, так что не факт, что книга плохая.
 
Сверху