您好,欢迎访问一九零五行业门户网

code - php中关于运算符的一些疑问?

在php中(或者其他语言中也有?),类似
if(!$a=b){ .....}

或者
empty($a)&&$a=array()

是什么意思?这样的写法有什么好处?
回复内容: 在php中(或者其他语言中也有?),类似
if(!$a=b){ .....}

或者
empty($a)&&$a=array()

是什么意思?这样的写法有什么好处?
不要这样写。
例如我写了几年代码了,第一眼就不知道 ! 和 = 的优先级
$a = somefunc();
if ($a) {
abc();
}
if ($a = somefunc()) {
abc();
}
if ( !($a = somefunc()) ) {
abc();
}
if ( ! $a = somefunc() ) {
abc();
}
($a = somefunc()) && abc();
最后,还是都用回if else 吧,代码一时爽,维护愁断肠.
empty($a) && $a=array()//这是短路运算符,如同if(empty($a)){ $a=array();}
if(!$a=b){
.....
}
先给$a赋值b
再!$a 这里注意运算符优先级即可
第二个&&前面的表达式只是判断变量是否为空;后面的是判断是否为空数组,这里就可以省略了
$a = false; $b = true; $c = 2; // $a为false,短路了,$c没有赋值20 $a && $c=20; echo $c; // 2 echo
; // $b为true,走了下一步,$c被赋值20 $b && $c=20; echo $c; // 20
你的代码可以理解为:如果不存在$a,就是true,走下一步,给$a赋值;
其它类似信息

推荐信息