zoukankan      html  css  js  c++  java
  • PHP赋值运算

    1. 赋值运算:= ,意思是右边表达式的值赋给左边的运算数。

    $int1=10;
    $int1=$int1-6; //$int1=4
    
    echo $int1,"<br>"; 
    
    $int3=$int2=$int1+4;  //右向左,最后$int3=8
    
    echo $int2,"<br>"; 
    echo $int3,"<br>"; 
    
    
    
    $int3=($int2=$int1)+4;  //先对()进行运算,再右向左,最后$int3=8
    
    echo $int2,"<br>"; 
    echo $int3,"<br>"; 

    2.将两个变量的值进行互换

    $int_x=10;
    $int_y=20;
    
    $int_x=$int_y+$int_x;
    $int_y=$int_x-$int_y;
    $int_x=$int_x-$int_y;
    
    echo "<hr>";
    echo $int_x,"<br>"; 
    echo $int_y,"<br>"; 

    3. 引用赋值

    $x=6;
    $y=$x;
    $z=&$y; //意味着$y,$z两个变量指向了同一个数据

     图形描述,左边表示变量,右边表示对应的值,$z=&$y表示$y,$z两个变量指向一个数据6,如C言语中的指针道理,指向同一个地址数据。

    echo var_dump($x,$y,$z),"<br>"; 

    就会输出:int(6) int(6) int(6)

    接下来,改变$x,$y的值,看变化:

    $x=4;
    $y=8;
    

    echo var_dump($x,$y,$z),"<br>"; 

    就会输出:int(4) int(8) int(8)

    假如,我们这时候,作如下改变,再看$x,$y,$z的变化:

    $x=$y+10;
    $y=&$x; //意味着$y的值指向了$x的值,
    $z=$y+2;

    echo var_dump($x,$y,$z),"<br>"; 

    就会输出:int(18) int(18) int(20)

    下面,再作一个例子来加深理解:

    //为了能清楚的描述,先作释放变量操作
    unset($x);
    unset($y);
    unset($z);
    unset($u);
    
    $x=1;
    $y=2;
    $z=3;
    $u=&$z;
    
    echo "<hr>";
    echo var_dump($x,$y,$z,$u),"<br>"; 
    
    $y=&$x;
    $z=&$y;
    echo var_dump($x,$y,$z,$u),"<br>"; 
    
    $y=5;
    echo var_dump($x,$y,$z,$u),"<br>"; 
    
    $u=&$z;
    echo var_dump($x,$y,$z,$u),"<br>"; 
    
    $z=6;
    echo var_dump($x,$y,$z,$u),"<br>"; 

    看输出结果:

    int(1) int(2) int(3) int(3) 
    int(1) int(1) int(1) int(3) 
    int(5) int(5) int(5) int(3) 
    int(5) int(5) int(5) int(5) 
    int(6) int(6) int(6) int(6)

    最后列出完整的测试代码:

    <?php 
    // 1. 赋值运算:= ,意思是右边表达式的值赋给左边的运算数。 
    
    $int1=10;
    $int1=$int1-6; //$int1=4
    
    echo $int1,"<br>"; 
    
    $int3=$int2=$int1+4;  //右向左,最后$int3=8
    
    echo $int2,"<br>"; 
    echo $int3,"<br>"; 
    
    
    
    $int3=($int2=$int1)+4;  //先对()进行运算,再右向左,最后$int3=8
    
    echo $int2,"<br>"; 
    echo $int3,"<br>"; 
    
    // 2.将两个变量的值进行互换 
    $int_x=10;
    $int_y=20;
    
    $int_x=$int_y+$int_x;
    $int_y=$int_x-$int_y;
    $int_x=$int_x-$int_y;
    
    echo "<hr>";
    echo $int_x,"<br>"; 
    echo $int_y,"<br>"; 
    
    // 3. 引用赋值
    $x=6;
    $y=$x;
    $z=&$y; //意味着$y,$z两个变量指向了同一个数据
    echo "<hr>";
    echo var_dump($x,$y,$z),"<br>"; 
    
    $x=4;
    $y=8;
    echo var_dump($x,$y,$z),"<br>"; 
    
    $x=$y+10;
    $y=&$x; //意味着$y的值指向了$x的值,
    $z=$y+2;
    echo var_dump($x,$y,$z),"<br>"; 
    
    //-----------------------
    //为了能清楚的描述,先作释放变量操作
    unset($x);
    unset($y);
    unset($z);
    unset($u);
    
    $x=1;
    $y=2;
    $z=3;
    $u=&$z;
    
    echo "<hr>";
    echo var_dump($x,$y,$z,$u),"<br>"; 
    
    $y=&$x;
    $z=&$y;
    echo var_dump($x,$y,$z,$u),"<br>"; 
    
    $y=5;
    echo var_dump($x,$y,$z,$u),"<br>"; 
    
    $u=&$z;
    echo var_dump($x,$y,$z,$u),"<br>"; 
    
    $z=6;
    echo var_dump($x,$y,$z,$u),"<br>"; 
    
    
     ?>
    View Code

    (完.)

  • 相关阅读:
    Linq to OBJECT延时标准查询操作符
    LINQ to XML
    动态Linq(结合反射)
    HDU 1242 dFS 找目标最短路
    HDu1241 DFS搜索
    hdu 1224 最长路
    BOJ 2773 第K个与m互质的数
    ZOJ 2562 反素数
    2016 ccpc 杭州赛区的总结
    bfs UESTC 381 Knight and Rook
  • 原文地址:https://www.cnblogs.com/wghao/p/6008482.html
Copyright © 2011-2022 走看看