我前几天读到在if语句中分配值并不是一个好主意。 说实话,我实际上使用了这么多,例如。
if(isset($_POST) && $post = $_POST) {
print_r($post)
}
知道为什么不是最佳的吗?
答案 0 :(得分:14)
尤其是因为忘记赋值和相等运算符不同是一个常见的新手错误,因此很容易导致混淆或难以检测的错误。
您的代码的可读性比任何微优化更重要
答案 1 :(得分:9)
因为它不是最优的,它是关于标准,惯例,条件需要比较而不是分配。
不要造成混乱,Noobs可能会花几个小时调试问题!
答案 2 :(得分:4)
如果您误将$post == $_POST
误认为$post = $_POST
,可能会让读者感到困惑。
一般来说,它并没有真正提高代码的可读性......
此外,通常没有必要用“if”
答案 3 :(得分:4)
好吧,独自一人,逻辑运算符中的赋值并不是那么糟糕:
if ($id = $_GET['id']) {
或
while($row = mysql_fetch_assoc($res)) {
我们经常使用。=
和==
运算符的危险。
但是在一个语句中混合逻辑运算符和赋值运算符是不好的。这称为混淆和perl只写样式,使得阅读此代码更加困难。
所以,最好写成
if(isset($_POST)) {
$post = $_POST;
print_r($post);
}
虽然这个特别的陈述是毫无意义的
$ _POST始终设置在任何合理的环境中,并将其分配给大多数时间不必要的另一个变量