PHP if / else简写多次执行

时间:2013-11-04 09:14:27

标签: javascript php if-statement shorthand

在Javascript中,我们可以通过以下代码执行此操作:

function test(a) { 
  a && (console.log("somthing"), executeOtherFunction()); 
}

以上代码简写为:

function test(a){
  if(a){
    console.log("something");
    executeOtherFunction()
  }
}

有可能让这个适用于PHP吗?

我并不是说在PHP中使用console.log,只是想在PHP中使用相同的东西。

3 个答案:

答案 0 :(得分:2)

在PHP中,条件评估中还有短路。 使用AND(或&&)时,只要遇到false值,评估就会停止。

但是,PHP不支持逗号,运算符。因此,您不能通过用,分隔它们来执行两个表达式。它只允许作为语法糖在for循环中使用:

for ($a = 2, $b = 4; $a < 3; $a++)
           ^

此结构也经常与or关键字一起使用:

someAction() or log("someAction() execution failed");

仅当someAction()返回false时才会记录错误。

答案 1 :(得分:2)

它看起来适用于PHP。

function test(a) { 
  a && (console_log("somthing") xor executeOtherFunction()); 
}

我认为PHP能够将所有内容转换为bool而不会出错。

答案 2 :(得分:0)

正如Guillaume Poussel所说,PHP知道条件评估中的短路,但不知道通过,链接代码块。

如果你愿意真的滥用 PHP的弱打字系统,你可以使用这样的东西:

if ($a && function1() . function2() ) ;
                      ^ concatenate the results of the functions as strings

显然只有在你不需要函数的返回值时才会有效。

免责声明:我不建议在生产代码中使用此功能,但这是一个有趣的思想实验