Heim >Backend-Entwicklung >PHP-Tutorial >code - php中关于运算符的一些疑问?

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

WBOY
WBOYOriginal
2016-07-06 13:53:551029Durchsuche

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

<code>if(!$a=b){
    .....
}</code>

或者

<code>empty($a)&&$a=array()</code>

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

回复内容:

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

<code>if(!$a=b){
    .....
}</code>

或者

<code>empty($a)&&$a=array()</code>

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

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

$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>

if(!$a=b){

<code>.....</code>

}
先给$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>

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

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn