PHP:返回if(){}的一部分

Eik*_*ern 0 php

假设我有这段代码:

if (md5($_POST[$foo['bar']]) == $somemd5) {
  doSomethingWith(md5($_POST[$foo['bar']]);
}
Run Code Online (Sandbox Code Playgroud)

我可以通过这样做来缩短它:

$value = md5($_POST[$foo['bar']];
if ($value == $somemd5) {
  doSomethingWith($value);
}
Run Code Online (Sandbox Code Playgroud)

但是,是否有任何预设变量包含当前的第一个或第二个条件?例如:

if (md5($_POST[$foo['bar']]) == $somemd5) {
  doSomethingWith($if1);
}
Run Code Online (Sandbox Code Playgroud)

可能是一种不必要的方式,但我只是想知道.

smo*_*smo 7

不,但由于赋值本身是一个表达式,您可以将赋值用作if语句的条件表达式.

if (($value = md5(..)) == $somemd5) { ... }

但是,一般情况下,您需要避免将赋值嵌入到条件表达式中:

  • 代码更密集,因此更难以阅读,使用更多嵌套括号.
  • 在同一个表达式中混合=和==只是要求它们混淆.