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

WBOY
Lepaskan: 2016-07-06 13:53:55
asal
982 orang telah melayarinya

在php中(或者其他语言中也有?),类似

<code>if(!$a=b){
    .....
}</code>
Salin selepas log masuk
Salin selepas log masuk

或者

<code>empty($a)&&$a=array()</code>
Salin selepas log masuk
Salin selepas log masuk

是什么意思?这样的写法有什么好处?

回复内容:

在php中(或者其他语言中也有?),类似

<code>if(!$a=b){
    .....
}</code>
Salin selepas log masuk
Salin selepas log masuk

或者

<code>empty($a)&&$a=array()</code>
Salin selepas log masuk
Salin selepas log masuk

是什么意思?这样的写法有什么好处?

不要这样写。
例如我写了几年代码了,第一眼就不知道 ! 和 = 的优先级

$a = someFunc();
if ($a) {
abc();
}

if ($a = someFunc()) {
abc();
}

if ( !($a = someFunc()) ) {
abc();
}

if ( ! $a = someFunc() ) {
abc();
}

($a = someFunc()) && abc();

最后,还是都用回if else 吧,代码一时爽,维护愁断肠.

<code class="php">
empty($a) && $a=array()
//这是短路运算符,如同
if(empty($a)){
   $a=array();
}</code>
Salin selepas log masuk

if(!$a=b){

<code>.....</code>
Salin selepas log masuk

}
先给$a赋值b
再!$a 这里注意运算符优先级即可

第二个&&前面的表达式只是判断变量是否为空;后面的是判断是否为空数组,这里就可以省略了

<code>    $a = FALSE; 
    $b = TRUE; 
    $c = 2;
    
    // $a为false,短路了,$c没有赋值20
    $a && $c=20;
    echo $c; // 2

    echo "<br>";

    // $b为true,走了下一步,$c被赋值20
    $b && $c=20;
    echo $c; // 20
</code>
Salin selepas log masuk

你的代码可以理解为:如果不存在$a,就是true,走下一步,给$a赋值;

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan