[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: switch
SuccessLord
Имеем такой вот код:
$name = "John";
echo $name;
echo "<br>";
switch($name){
case 'Mike':
echo 'Mike'; break;
case 0:
echo 100; echo "<br>"; var_dump($name); break;
case 'John':
echo 'John'; break;
case 1:
echo 1; break;
default:
echo 'Guest';
}


На выходе:
John
100
string 'John' (length=4)

Почему он заходит в case 0: ?
xlebosol
Важно понять, как оператор switch выполняется, чтобы избежать ошибок. Оператор switch исполняет строчка за строчкой (на самом деле выражение за выражением). В начале никакой код не исполняется. Только в случае нахождения оператора case, значение которого совпадает со значением выражения в операторе switch, PHP начинает исполнять операторы. PHP продолжает исполнять операторы до конца блока switch либо до тех пор, пока не встретит оператор break. Если вы не напишете оператор break в конце секции case, PHP будет продолжать исполнять команды следующей секции case.

ОТРЫВОК ИЗ МАНУАЛА!!!!!
brevis
Потому, что
var_dump( "John" == 0 ); // будет true

Ноль в кавычки возьми.

_____________
Чатик в телеге
SuccessLord
brevis, спасибо.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.