你好,游客 登录 注册 搜索
背景:
阅读新闻

PHP赋值运算

[日期:2016-10-30] 来源:Linux社区  作者:wghao [字体: ]

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>"; 


 ?>

 (完.)

本文永久更新链接地址http://www.linuxidc.com/Linux/2016-10/136534.htm

linux
相关资讯       赋值运算 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款