[php] функция switch

Ivan826

есть switch на переменную, при некоторых одинаковых значениях выполняется один и тот же кусок кода с некоторыми (маленькими) различиями. Возможно ли это сделать не используя 2 switch'a?
То есть не так:
switch($a)
{
case "first":
print("Первый");
break;
case "second":
print("Второй");
break;
case "third":
print("Третий");
break;
case "forth":
case "fifth":
case "sixth":
switch($a)
{
case "forth":
$name="Четвёртый";
break;
case "fifth":
$name="Пятый";
break;
case "sixth":
$name="Шестой";
break;
}
print($name." нах бля")
break;
}

evgen5555

Обрамляйте свой код тэгами!

sergey_m

оператор switch

sergey_m

Можно с помощью большого кол-ва if then.

Ivan826

Если не сложно, опиши как...
Перепишу

avinir60

Вот как бы сделал это я.
  
switch($a) {
case "first":
print("Первый");
break;
case "second":
print("Второй");
break;
case "third":
print("Третий");
break;
case "forth":
$name="Четвёртый";
break;
case "fifth":
$name="Пятый";
break;
case "sixth":
$name="Шестой";
break;
}
if (in_array($a, array("forth", "fifth", "sixth" {
print($name." хорошая погода");
}

stm7884696

а че, условия логического ИЛИ не работают в case?
case "1" || ""2 || "3": print "нах".$a; 

sergei1969

 case "1" || ""2 || "3": 
маза так нельзя
 
case "1":
case "2":
case "3":
print "нах".$a;
можно

Fragaria

уууу ёёёёёёё.... дааааааа....

rosali

Ага, он наверное еще пишет
if( x = 5 || 6 || 7 ) Так многие в децтве пишут...

Vladislav177Rus

Долго думал, как такое может работать, пока не воткнул, что это типа шутка. Нельзя ж так над людьми издеваться!

Julie16

Атцы чтобы не делать таких ашибак пишут так: if ( 5 || 6 || 7 = x )

sergey_m

Аццы, что бы не писать случайно '=' вместо '==' пишут:


if (NULL == pointer) {
}

if (0 == int) {
}

Vladislav177Rus

Что-то мне подсказывает, что это не будет компилироваться...

Julie16

А я что написал? Просто я оставил = для лучшего понимания. Но оказалось что лучше было его убрать.

stm7884696

да, в 1993 году я так и писал. Один раз... А потом перестал....
но маза была в логической схеме, а не в синтаксической...

rosali

Ну дык и я говорю - каждый программист так однажды пишет , мой первый опыт еще на Паскале был
PS. Ну конечно == имелось в виду, ошибся ...
PSS. switch - страшно вреден, он требует _констант_ (по крайней мере в С) в case-ах, и из-за этого программа становится "неисправимой", вот.

evgen5555

>PSS. switch - страшно вреден, он требует _констант_ (по крайней мере в С) в case-ах, и из-за этого программа становится "неисправимой", вот.
Может, стоит задуматься об объявлениях препроцессора?

rosali

Это ты к чему? Константы это константы - величины известные в момент компиляции, какая разница как они записаны.
Вот ты написал программу, в которой в 20 местах
switch(option)
{
case A:
сase B:
}
а через год возникли причины значения A и B читать из конфигурационного файла, и все вперед все 20 switch-ей переписывать...
Оставить комментарий
Имя или ник:
Комментарий: