Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Мега switch()


Автор: InfMag 30.1.2005, 23:24
Как мне проделать мега операцию? Мне вот не известно скока у меня будет case'ов, но параметр default мне обязательно нужен... Писал так, но не пашет:
Код

$file = file("../data/sections/id.dat");
switch ($_GET['id']) {
default: echo "Нет такого раздела!"; break;
for ($i=0; $i<sizeof($file); $i++) {
 case "$i":
  $ids = explode("|",$file[$_GET['id']]);
  $title = $ids[0];
  $text = $ids[1];
 break;
}
}


А если вместе со switch() пробивать, то нафиг мне стока дефолтов на экран выводить?
Добавлено @ 23:26
Канеш я могу пробить в первом дефолте переменную, которая в других заставит ниче не делать, но способ красивее есть?

Автор: IZ@TOP 31.1.2005, 01:26
Код

$file = file("../data/sections/id.dat");
for ($i=0; $i<sizeof($file); $i++) {

if($_GET['id'] == $i) {
 $ids = explode("|",$file[$_GET['id']]);
 $title = $ids[0];
 $text = $ids[1];
 break;
}

}

if(!isset($text)) {
 echo "Нет такого раздела!";
}

Учить основы РНР! Быстро! Такой изврат я бы прировнял к садомазе.

Автор: InfMag 31.1.2005, 12:00
IZ@TOP
Слушай, ты меня так и не понял...
Мне обязательно нужен дефольт, так, как ты я с самого начало попробовал, но если пишем в ID 00 или еще тому подобное, то получаем error, вместо "Нет такого раздела!"...
Теперь понял зачем мне нужен этот мега switch()?

Автор: IZ@TOP 31.1.2005, 12:05
InfMag, тот код который я дал должен полностью удволетворять твоим потребностям. Можно сделать проще только:

Код
$file = file("../data/sections/id.dat");

if(!isset($file[$_GET['id']])) {
   echo "ERROR: Нет такого ID!";
} else {
   $ids = explode("|",$file[$_GET['id']]);
   $title = $ids[0];
   $text = $ids[1];
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)