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

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

WBOY
Freigeben: 2016-07-06 13:53:55
Original
1030 Leute haben es durchsucht

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

<code>if(!$a=b){
    .....
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

或者

<code>empty($a)&&$a=array()</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

回复内容:

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

<code>if(!$a=b){
    .....
}</code>
Nach dem Login kopieren
Nach dem Login kopieren

或者

<code>empty($a)&&$a=array()</code>
Nach dem Login kopieren
Nach dem Login kopieren

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

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

$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>
Nach dem Login kopieren

if(!$a=b){

<code>.....</code>
Nach dem Login kopieren

}
先给$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>
Nach dem Login kopieren

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

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage