Я заметил, что оператор switch производит неправильные результаты, когда используются переменные с значениями ложности.Оператор switch PHP выдает неверные результаты при использовании значений фальши
Например:
$total = 0; // Same results with '' as a value
switch ($total) {
case 5:
echo "Five";
break;
case 10:
echo "Ten";
break;
case $total >= 10:
echo "More than or equal to one";
break;
default :
echo "Anything";
}
Строка, которая получает отражение с помощью этого сценария, является «более или равно одному».
Можете ли вы сказать мне, нужно ли мне что-то сделать, чтобы заставить оператор switch работать со значениями ложности? Ссылка также будет очень полезна, если вы предпочитаете что-то подобное, любая помощь будет более чем приветствуется.
Спасибо за ваше время.
'case $ total> = 10:'? вы не можете использовать выражение (больше или равно) самостоятельно, вы можете назначить его; выражения вычисляются в 'if', и я не вижу, как вы его тестируете. –
@ Fred-ii- Спасибо за ваш комментарий. Вы уверены, что этого нельзя сделать так? Я думаю, что на самом деле это не считается неправильным (например: http://stackoverflow.com/a/24813225/3915624). –
Обратите внимание на использование 'switch' там' switch (true) {', а не' switch ($ variable) '. См. Https://eval.in/676379 и https://eval.in/676378 – chris85