Недавно я столкнулся с очень странным поведением в случае переключения PHP при работе со строкой '-0'
.
/*
The code below echos:
'How did that happen? "0" and "0" are two different strings.'
*/
$myString = '-0';
switch($myString) {
case '0':
echo 'How did that happen? "-0" and "0" are two different strings.';
break;
case '-0':
echo 'This is normal.';
break;
}
Как ни странно, приведенный выше оператор switch выполняет case '0'.
Возвращаясь к приведенному выше коду, кажется, что если вы измените порядок случаев и поместите случай '-0'
перед случаем '0'
, он будет работать нормально и выполнять случай '-0', как и должно быть. < br>
Почему так? Есть ли причина такого странного поведения?