I use javascript to send cases to and ajax function. The cases are taken from the link id. For example, if user clicked this link:
<a id="answer-yes-123">click this</a>
The javascript will split the id to 3 part, and send the middle part “yes” to ajax as a case. For most cases, when ajax receives the case, if yes do this if no do that.
switch ($case) {
case 'yes' :
$assignment->add();
break;
case 'no' :
$assignment->remove();
break;
There’s one exception– a numerical case. If the middle part of the link is a number, I don’t know how to make the switching statement. There are potentially unlimited different numbers, I can’t make each of them a case, How to make a condition like if(is_int($case)) to work as a case?
In the
switchdefault:case, you can testis_int():This is a little strange logically, because
default:is typically used for the do this if nothing else is met condition. In your case though, if you don’t need to further divide the numeric case much it works. Just be sure to comment it clearly in your code so you remember why you did it when you look back on it in six months.Update after comments:
Since you already used the
default:, I believe you can actually use an expression inside acase. This warrants even clearer commenting since it is not a common practice and goes kind of against the purpose of aswitch: