如果语句因条件太多而中断
If statement breaks with too many conditions
我有一个 if 语句,例如
if ( $id == '2781' || $id == '1947' || $id == '516' || $id == '3200' || $id == '237' || $id == '3207' || $id == '3205' || $id == '2647' || $id == '516' || $id = '4571' ) {
// Do something
}
但是 if 语句似乎因为条件的数量而失败(例如,它总是做某事,而不仅仅是指定的 ID)。我可以删除其中的一些并且它按预期工作。我该如何解决这个问题?
试试这个,in_array 非常适合这种情况:
if (in_array((int)$id, array(2781, 1947, 516, 3200, 237, 3207, 3205, 2647, 516, 4571))) {
// Do something
}
此外,您的代码中缺少一个“=”。
你打错了:
... || $id = '4571' ) ...
正在将 '4571'
的值分配给 $id
。您必须使用比较运算符:
... || $id == '4571' ) ...
这就是为什么我喜欢使用 in_array
:
$availableIds = ['2781', '1947', '516', '3200', '237', '3207', '3205', '2647', '516', '4571'];
if(in_array($id, $availableIds)) {
...
}
我有一个 if 语句,例如
if ( $id == '2781' || $id == '1947' || $id == '516' || $id == '3200' || $id == '237' || $id == '3207' || $id == '3205' || $id == '2647' || $id == '516' || $id = '4571' ) {
// Do something
}
但是 if 语句似乎因为条件的数量而失败(例如,它总是做某事,而不仅仅是指定的 ID)。我可以删除其中的一些并且它按预期工作。我该如何解决这个问题?
试试这个,in_array 非常适合这种情况:
if (in_array((int)$id, array(2781, 1947, 516, 3200, 237, 3207, 3205, 2647, 516, 4571))) {
// Do something
}
此外,您的代码中缺少一个“=”。
你打错了:
... || $id = '4571' ) ...
正在将 '4571'
的值分配给 $id
。您必须使用比较运算符:
... || $id == '4571' ) ...
这就是为什么我喜欢使用 in_array
:
$availableIds = ['2781', '1947', '516', '3200', '237', '3207', '3205', '2647', '516', '4571'];
if(in_array($id, $availableIds)) {
...
}