|
|
|
| До смеха простой вопрос.
Необходимо в свитче для блока задать условие, например диапазон значений или больше/
меньше, как это сделать синтаксически грамотно и возможно ли это вообще на php?
Пример:
case 5 to 10:
case is > 5:
что-то в этом духе надо. | |
|
|
|
|
|
|
|
для: Zenden
(12.11.2005 в 15:09)
| | обычно в этом случае делают так
<?
if( $is > 5 and $is < 10)
...
elseif( $is >10 and $is < 15)
....
else
...
?>
|
| |
|
|
|
|
|
|
|
для: Artem S.
(12.11.2005 в 15:48)
| | Спасибо конечно, но если я спрашиваю про switch, значит мне нужен switch а не if ! | |
|
|
|
|
|
|
|
для: Zenden
(12.11.2005 в 16:45)
| | Switch на то и существует, чтобы выражение вычислялось один раз и потом по результатам выражения выполняется условие. В твоем случае лучше использовать if. | |
|
|
|
|
|
|
|
для: WebTech
(12.11.2005 в 17:54)
| | ясно, спасибо | |
|
|
|
|
|
|
|
для: Zenden
(12.11.2005 в 16:45)
| |
The case expression may be any expression that evaluates to a simple type, that is, integer or floating-point numbers and strings. Arrays or objects cannot be used here unless they are dereferenced to a simple type.
|
(C) php.net
Для тех кто не понял - выражение в case может быть только простого типа (текст, число)
Switch по сути тот же if else | |
|
|
|
|
|
|
|
для: Artem S.
(12.11.2005 в 18:03)
| | То что это тот же if else понятно, но эта конструкция выполняется, когда надо рассмотреть более 3 конструкций. В этом случае вкладывать один в другой условный оператор неудобно! | |
|
|
|
|
|
|
|
для: Football
(12.11.2005 в 18:29)
| | Зачем вкладывать
<?
if( ) { } // первый case
elseif( ) { } // второй case
elseif( ) { } // третий case
elseif( ) { } // четвертый case
else( ) { } // default
?>
|
| |
|
|
|
|
|
|
|
для: Artem S.
(12.11.2005 в 18:53)
| | Да, очень удобно несколько раз писать elseif {} ... :)
ИМХО это только самый плохой программист воспользуется такой конструкцией | |
|
|
|
|
|
|
|
для: Football
(12.11.2005 в 20:35)
| | Не знаю, достаточно наглядно. Даже сравнивая с кодом ниже. | |
|
|
|
|
|
|
|
для: Artem S.
(12.11.2005 в 21:46)
| | С таким кодом как выше нельзя сделать проверку сразу по нескольким условиям, swich же позволяет проверить все условия если не остановить его break-ом | |
|
|
|
|
|
|
|
для: isset
(12.11.2005 в 21:54)
| | Можно все, но вот что рациональнее это вопрос.
Всему свое место. Где-то switch где-то if else | |
|
|
|
|
|
|
|
для: Artem S.
(12.11.2005 в 23:29)
| | Я бы хотел увидеть как сделать несколько проверок через if+elseif+else | |
|
|
|
|
|
|
|
для: isset
(13.11.2005 в 00:22)
| | Если вы не против, давайте начнем новую тему, а то совсем выбиваемся из сути вопроса. | |
|
|
|
|
|
|
|
для: Zenden
(12.11.2005 в 15:09)
| | С чего вы взяли что нельзя? Можно.
<?
$a = 15;
switch(true) {
case ($a < 15 && $a > 0):
echo $a." меньше 15 и больше 0";
break;
case ($a > 10 && $a < 100):
echo $a." больше 15 и меньше 100";
case ($a == 15):
echo $a." равно 15 и меньше 100";
break;
}
?>
|
| |
|
|
|
|
|
|
|
для: isset
(12.11.2005 в 19:31)
| | точно можно... ни разу не видел... ушел читать manual.... | |
|
|
|
|
|
|
|
для: Artem S.
(12.11.2005 в 19:34)
| | Вот наконец-то нашелся хоть один человек который смог зарядить switch :) | |
|
|
|