歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> PHP賦值運算

PHP賦值運算

日期:2017/3/1 9:10:29   编辑:Linux編程

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

(完.)

Copyright © Linux教程網 All Rights Reserved