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

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";
}
?>
 

Demiurg

Guest
а может стоит самому попробовать запустить его, и подумать, почему вывелось именно это? для тебя это будет гораздо полезнее.
 

RAIDER

Guest
Да дело не в этом я как поинмаю тут должно вывестись:

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

Правильно?
 

RAIDER

Guest
ТОесть дефаулт он выполняет тольков том случае если case не совпадает с значением выражения...а так как выражение равно 21 то он начнет выполнять с case 21.
 

Фанат

oncle terrible
Команда форума
что значит "выполнять с"?
почему ты считаешь, что оно выполняет несколько операций?
 

Фанат

oncle terrible
Команда форума
ну и что, что не стоит?
при чем десь вообще брейк?
почему ты считаешь, что после совпадения должно начать исполняться? почему до - не выполняется, а после - должно, по-твоему?
при 22 условие выполняется?

почему ты не запустишь и не выполнишь сам?
 

RAIDER

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

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

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

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

Фанат

oncle terrible
Команда форума
должен выполняться оператор после default, по крайней мере я так понял из книги...
может быть.
я вообще с этим оператором case никогда в жизни не работал.

по поводу перевода строки срочно идем читать ОЧЕНЬ СТРАШНОЕ ЗАМЕЧАНИЕ
 

RAIDER

Guest
Спасибо...лано...пошел читать....
Я думаю еще тут появлюсь...:)
 

Фанат

oncle terrible
Команда форума
а че читать-то?
я все понять не могу - почему бы не запустить?
ты с компа в инет выходишь, форум читаешь?
почему не поставить на комп софт?
или на худой конец на бесплатном хостинге сайтсделать для опытов?
 

RAIDER

Guest
ТОесть мне просто использовать <br> прально?
 

rotoZOOM

ACM maniac
Насчет case'ов.
RAIDER - выкинь эту книжку подальше. Если они забыли вставить 3 break'а, то это уже чересчур.
В php, как и в Cях, в switch'е выполняются все операторы, начиная с первого, который подходит case'у.
И выполняется до первого break'а.
Вывод для твоего случая:
Код:
Вам двадцать один год
Вам двадцать два года
Вам 21 лет
 

jrip

Новичок
rotoZOOM Ты не прав выведет "Вам двадцать один год Вам двадцать два года" т. е. либо до break, либо до default. У меня в одной книжке тоже был такой пример и там было всё это описано, так что не факт, что книга плохая.
 
Сверху