Оператор switch
нуждается в литералах в блоках case. Вместо этого используйте операторы if
.
Вы можете использовать другие виды циклов до iterate
через значение, а затем использовать IF
для сравнения. Выполнение сравнения / проверки состояния невозможно в switch
случаях.
Один из способов выполнить то, что вы хотите сделать, это так (заметьте, что IF используется):
$value = 'AA';
switch($value)
{
case ('AA'):
echo "value equals 1<br />";
case ('BB'):
if ($value == 'BB'){
echo "value equals 2<br />";
}
case (('AA') || ('CC')):
echo "value equals 3<br />";
break;
}
Выходы:
value equals 1
value equals 3
ПРИМЕЧАНИЕ: - вышеприведенное решение неверно, хотя выводит то, что вам нужно, не является правильным решением, и, если возможно, я бы рекомендовал избегать. Ваши нужды могут быть легко исправлены с помощью альтернатив, не связанных с коммутацией / кейсом.