gpt4 book ai didi

php - 检查变量是否不等于多个字符串值的更简单方法?

转载 作者:IT王子 更新时间:2023-10-29 00:38:58 26 4
gpt4 key购买 nike

当前代码:

<?php

// See the AND operator; How do I simplify/shorten this line?
if( $some_variable !== 'uk' && $some_variable !== 'in' ) {

// Do something

}

?>

还有:

<?php

// See the OR operator; How do I simplify/shorten this line?
if( $some_variable !== 'uk' || $some_variable !== 'in' ) {

// Do something else

}

?>

有没有更简单(即更短)的方式来写这两个条件?

注意:是的,它们是不同的,我希望有不同的方法来缩短代码。

最佳答案

对于您的第一个代码,您可以使用 the answer given by @ShankarDamodaran 的简短更改使用 in_array() :

if ( !in_array($some_variable, array('uk','in'), true ) ) {

或者更短的 [] 表示法从 php 5.4 开始可用,正如 @Forty 在评论中指出的那样

if ( !in_array($some_variable, ['uk','in'], true ) ) {

等同于:

if ( $some_variable !== 'uk' && $some_variable !== 'in' ) {

...但更短。特别是如果您比较的不仅仅是“英国”和“在”。我没有使用额外的变量(Shankar 使用 $os)而是在 if 语句中定义数组。有些人可能会觉得脏,我觉得它又快又整洁 :D

你的第二个代码的问题在于它可以很容易地与 TRUE 交换,因为:

if (true) {

等于

if ( $some_variable !== 'uk' || $some_variable !== 'in' ) {

你问的是字符串的值是不是 A 或 Not B。如果它是 A,它肯定也不是 B,如果它是 B,它肯定不是 A。如果它是 C 或其他任何字面意思,它也不是 A 也不是 B。所以这个陈述总是(这里不考虑薛定谔定律)返回真。

关于php - 检查变量是否不等于多个字符串值的更简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19949923/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com