Могу ли я поставить условный оператор в оператор switch. ex-switch ($ totaltime <= 13) Помимо php, как насчет совместимости других языков с ним?
$totaltime=15; switch ($totaltime<=13) { case ($totaltime <= 1): echo "That was fast!"; break; case ($totaltime <= 5): echo "Not fast!"; break; case ($totaltime >= 10 && $totaltime<=15): echo "That's slooooow"; break; }
редактировать
$totaltime=12; switch (false) { case ($totaltime <= 1): echo "That was fast!"; break; case ($totaltime <= 5): echo "Not fast!"; break; case ($totaltime >= 10 && $totaltime<=13): echo "That's slooooow"; break; default: // do nothing break; }
Джентльмен в этом случае, почему alwyas показывают вывод как «Это было быстро!»?
Switch только проверяет, совпадает ли первое условие со вторым, таким образом:
switch (CONDITION) { case CONDITION2: echo "CONDITION is equal to CONDITION2"; break; }
Поэтому вы должны сделать это так:
switch (true) { case $totaltime <= 1: #This checks if true (first condition) is equal to $totaltime <= 1 (second condition), so if $totaltime is <= 1 (true), is the same as checking true == true. echo "That was fast!"; break; case $totaltime <= 5: echo "Not fast!"; break; case $totaltime >= 10 && $totaltime<=13: echo "That's slooooow"; break; }
Вместо этого я if-elseif
операторов if-elseif
. Легче понять с первого взгляда:
if ($totaltime <= 1) { echo "That was fast!"; } elseif($totaltime <= 5) { echo "Not fast!"; } elseif($totaltime >= 10 && $totaltime<=13) { echo "That's slooooow"; }
Да, вы можете (за исключением сравнения в коммутаторе)
$totaltime=12; switch (true) { case ($totaltime <= 1): echo "That was fast!"; break; case ($totaltime <= 5): echo "Not fast!"; break; case ($totaltime >= 10 && $totaltime<=13): echo "That's slooooow"; break; default: // do nothing break; }
Да, вы можете, из документации коммутатора PHP:
Оператор switch похож на ряд операторов IF на одно и то же выражение. Во многих случаях вы можете сравнить одну и ту же переменную (или выражение) со многими разными значениями
Когда случай имеет постоянное значение, он просто говорит, что значение value = значение значения case ==, но вы можете иметь более сложные выражения для случая.