Я посмотрел документацию по переключению на php.net и, насколько я могу судить, проверяет сравнение на равенство между переменной в переключателе и регистром.Однако следующий код, кажется, работает правильно для всех возможных значений (int, null, array, other):
$x = array('one','two');
switch ($x) {
case null:
echo "is null!";
break;
case is_int($x):
echo "is int";
break;
case is_array($x):
echo "is array!";
break;
default:
echo "something else!";
break;
}
Из того, что я прочитал, следует сравнить is_int ($ a) [true] с$ x [массив, который оценивается как true] и дает неверный результат.
Мой вопрос ... почему это на самом деле работает?
РЕДАКТИРОВАТЬ: извините, я не скопировал его совсемправильно, как я возился с этим.Теперь он в своей рабочей форме