PHP:使用简短的if语句而不使用else?

brqmpdu1  于 2023-02-28  发布在  PHP
关注(0)|答案(7)|浏览(172)

我是一个球迷,如果短如果版本,例如:

($thisVar == $thatVar ? doThis() : doThat());

我想删掉else语句,例如:

($thisVar == $thatVar ? doThis());

然而,这行不通。有没有什么方法可以让我错过呢?

zbq4xfa0

zbq4xfa01#

如果没有else,您将无法使用它。但是您可以尝试以下操作:

($thisVar != $thatVar ?: doThis());

if ($thisVar == $thatVar) doThis();
wkyowqbh

wkyowqbh2#

三元运算符被设计成产生两个值中的一个,它是一个表达式,而不是一个语句,你不应该用它来代替if/else。
没有办法忽略:部分:那么这个表达式的值是多少呢

如果你调用的方法有副作用,使用if/else。不要走捷径。可读性比节省几个字符更重要。

yrwegjxp

yrwegjxp3#

嗯,很有趣,因为执行下面的代码是有效的。

for ($i = 1; $i <=10; $i++) {
    if ($i % 2) {
      echo $i;
    }
  }

上面的代码确实会输出13579
注意,上面没有使用“else”子句。
如果你想告诉用户$i % 2是否== FALSE($i的除数产生的余数为0),你可以包含一个else子句来输出偶数,如下所示:

for ($i = 1; $i <=10; $i++) {
    if ($i % 2) {
      echo "$i is odd";
      echo "<br />";
    } else {
      echo "$i is even";
      echo "<br />";
    }
  }

给出输出:1为奇数2为偶数3为奇数4为偶数5为奇数6为偶数7为奇数8为偶数9为奇数10为偶数
我希望我的这些非常容易理解的例子能帮助所有PHP的新手,成为构建动态Web应用程序的“最好的”服务器端脚本语言:-)

5jdjgkvh

5jdjgkvh4#

使用NULL可在语句为简写时跳过语句

$a == $b? $a = 10 : NULL;
92dk7w1h

92dk7w1h5#

只需使用逻辑运算符:和,或,&&,||等等。

($thisVar === $thatVar) && doThis();

经常使用的是:

$obj = doSomething($params) or throw new \Exception('Failed to do');
dgjrabp2

dgjrabp26#

下面是不使用else实现短if语句的方法
$side =“右”;
($side == '右侧')?$side值='右侧的值':'';

x3naxklr

x3naxklr7#

为我工作:

$leftHand != $rightHand?doThis():null;
$leftHand == $rightHand?null:doThis();

相关问题