Оператор case-скрипта PHP с условным переключателем

Могу ли я поставить условный оператор в оператор 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 показывают вывод как «Это было быстро!»?

Related of "Оператор case-скрипта PHP с условным переключателем"

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 ==, но вы можете иметь более сложные выражения для случая.