假设我有这段代码:
if (md5($_POST[$foo['bar']]) == $somemd5) { doSomethingWith(md5($_POST[$foo['bar']]); }
我可以通过这样做来缩短它:
$value = md5($_POST[$foo['bar']]; if ($value == $somemd5) { doSomethingWith($value); }
但是,是否有任何预设变量包含当前的第一个或第二个条件?例如:
if (md5($_POST[$foo['bar']]) == $somemd5) { doSomethingWith($if1); }
可能是一种不必要的方式,但我只是想知道.
不,但由于赋值本身是一个表达式,您可以将赋值用作if语句的条件表达式.
if (($value = md5(..)) == $somemd5) { ... }
但是,一般情况下,您需要避免将赋值嵌入到条件表达式中:
代码更密集,因此更难以阅读,使用更多嵌套括号.
在同一个表达式中混合=和==只是要求它们混淆.