简化PHP或语句

0x6*_*x60 0 php

好的,我相信我可以简化这行代码,除了我在网上找不到任何东西.谁能帮我?

if(empty($action) || $action == "a" || $action == "b" || $action == "c") {
}
Run Code Online (Sandbox Code Playgroud)

谢谢!

Bol*_*ock 7

您可以使用in_array()搜索可能值的数组$action:

if (empty($action) || in_array($action, array('a', 'b', 'c'))) {
}
Run Code Online (Sandbox Code Playgroud)

我保持empty()条件分开,因为empty()除了空字符串之外,对于许多事情测试都是正确的''.

如果您只关心测试空字符串,可以将其包含在内in_array(),并将其除去empty():

if (in_array($action, array('', 'a', 'b', 'c'))) {
}
Run Code Online (Sandbox Code Playgroud)

empty()由于短路,我认为明确地包含了一点点好一点.