对于您的第一个代码,您可以使用简短的更改给出的答案
@尚卡尔达莫达兰 https://stackoverflow.com/a/19949968/532495 using in_array() https://www.php.net/in_array:
if ( !in_array($some_variable, array('uk','in'), true ) ) {
甚至更短[]
正如 @Forty 在评论中指出的,自 php 5.4 起可用的符号
if ( !in_array($some_variable, ['uk','in'], true ) ) {
是相同的:
if ( $some_variable !== 'uk' && $some_variable !== 'in' ) {
...但更短。尤其是当您比较的不仅仅是“uk”和“in”时。
我不使用附加变量(Shankar 使用 $os) 而是在 if 语句中定义数组。有些人可能会觉得很脏,我发现它又快又整洁:D
第二个代码的问题是它可以很容易地与 TRUE 交换,因为:
if (true) {
equals
if ( $some_variable !== 'uk' || $some_variable !== 'in' ) {
你问一个字符串的值是否不是A或不是B。如果它是A,它绝对不是B,如果它是B,它绝对不是A。如果它是C或其他任何东西,它是也不是 A 也不是 B。因此该陈述总是 (这里不考虑薛定谔定律) 返回 true。