之前在公司写项目的时候,总是看到大佬们写一下让我想很久的代码:
isset($_POST['name']) && $data['name'] = $_POST['name'];
之前我还想是怎么获取POST提交过来的值呢,原来里面是运算符的一些优先级的问题;我也上度娘查了一下;
下表按照优先级从高到低列出了运算符。同一行中的运算符具有相同优先级,此时它们的结合方向决定求值顺序。
例如1:
<?php
$a = 3 * 3 % 5; // (3 * 3) % 5 = 4
// ternary operator associativity differs from C/C++
$a = true ? 0 : true ? 1 : 2; // (true ? 0 : true) ? 1 : 2 = 2
$a = 1;
$b = 2;
$a = $b += 3; // $a = ($b += 3) -> $a = 5, $b = 5
?>
例如2:
$a = 1;$b = 2;$c = 3;
$a && $b = $c;
echo "a:$a";
echo "b:$b";
echo "c:$c";
这样是
a:1 b:3 c:3
$a = 0;$b = 2;$c = 3;
$a && $b = $c;
echo "a:$a";
echo "b:$b";
echo "c:$c";
这样是
a:0 b:2 c:3
解析: && 和赋值运算符“=”的优先级是&&优先级高,
群主个人博客:http://www.dongdang.xin/