假设我有这段代码:
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)
可能是一种不必要的方式,但我只是想知道.
不,但由于赋值本身是一个表达式,您可以将赋值用作if语句的条件表达式.
if (($value = md5(..)) == $somemd5) { ... }
但是,一般情况下,您需要避免将赋值嵌入到条件表达式中: