我正在开发一个相当老的项目,我想做一些小的重构。
我有一个 if 语句,条件如下
if ($a == 1 || $a == 2 || b == 3)
我想用
替换它(或者最好写一份检查)if (in_array($a, [1, 2, 3]))
我可以编写结构替换来获得确切的比较次数
if ($VAR$ == $VALUE1$ || $VAR$ == $VALUE2$)
但是这个过程中是否有可能以某种方式涉及重复?有时有一个 ||运算符,有时有三个或更多...
我想到的唯一解决方案是为不同数量的操作员制定更多意图。但我相信有比这更好的解决方案。
尝试展开。这个想法是将 VALUE 增量移动到 in_array 调用中:
in_array($a, [1]) || $a == 2 || $a == 4
in_array($a, [1, 2]) || $a == 3 || $a == 4
in_array($a, [1, 2, 3]) || $a == 4
in_array($a, [1, 2, 3, 4])
因此搜索模板将是:
in_array($a$, [$vals$]) || $a$ === $val$
(其中
$vals$
计数 = [0,无限制])
替换模板:
in_array($a$, [$vals$, $val$])
(您仍然需要为基本案例编写搜索模板)
现在,在替换窗格中,重复按重新运行 (Ctrl+F5) 和全部替换。