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

(完.)

PHP赋值运算的更多相关文章

  1. js赋值运算的理解

    简介 js引擎由于为了效率,很多时候的非直接量赋值都不是copy一份在赋值给新的变量,而是一个引用 ps:直接量:直接值数字字符串等 为什么使用len = doms.length; 里的len效率要比 ...

  2. 使用C/C++,赋值运算时发生的转换

    使用C/C++,赋值运算时发生的转换主要有以下四种情况 一: 两边类型不同: 结果: 自动完成类型转换! 二: 长数赋给短数: 结果: 截取长数的低位送给短数! 三: 短数赋给长数: 结果: 原来是什 ...

  3. C++中的构造函数,拷贝构造函数和赋值运算

    关于C++中的构造函数,拷贝构造函数和赋值运算,以前看过一篇<高质量C++/C编程指南>的文章中介绍的很清楚,网上能搜索到,如果想详细了解这方面的知识可以参看一下这篇文章. 常见的给对象赋 ...

  4. ecos3.0编译 if_lancepci.c:528: 错误: 赋值运算的左操作数必须是左值

    /home/xin/ecos3/ecos-3.0/packages/devs/eth/amd/lancepci/v3_0/src/if_lancepci.c:528: 错误: 赋值运算的左操作数必须是 ...

  5. 算术运算,赋值运算,if语句,while,continue语句

    算术运算 print(10 / 3)=3.333333333333 print(10 // 3)=3 print(10 ** 2)=100 赋值运算增量赋值 age=18 age+=1 print(a ...

  6. 【学习笔记】--- 老男孩学Python,day3 while 循环 运算符 逻辑、赋值运算

    1. 循环. while循环 while 条件: 代码块(循环体) 执行流程: 1. 判断条件是否为真. 如果真. 执行代码块 2. 再次判断条件是否为真...... 3. 当条件为假.执行else ...

  7. 总结day5 ---- ,字典的学习,增删改查,以及字典的嵌套, 赋值运算

    内容大纲: 一:字典的定义 二:字典的增加 >1:按照key增加,  无则增加,有则覆盖 >2:setdefault()  ,无则增加,有则不变 三:字典的删除 >1:pop()  ...

  8. 关于java赋值运算的一个小例子

    直接贴代码,这个也是做题目中遇见的,觉得很好奇,查了一波,然后自己编写代码看了一下,果真如此,哈哈哈...... public class 关于Boolean的赋值运算 { public static ...

  9. 《Effective C++》第2章 构造/析构/赋值运算(2)-读书笔记

    章节回顾: <Effective C++>第1章 让自己习惯C++-读书笔记 <Effective C++>第2章 构造/析构/赋值运算(1)-读书笔记 <Effecti ...

随机推荐

  1. 【大型网站技术实践】初级篇:借助LVS+Keepalived实现负载均衡

    一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务 ...

  2. 【组织级项目管理】P2 MSP P3O

    组织级项目管理--有你,有我,有大家 在过去的2年,无论对于企业来讲,还是对于我们个人都有很多大脑的冲击,有几个词大家应该特别耳熟能详:转型,变革,敏捷,互联网+,组织的项目化管理等.就是这些让我们的 ...

  3. CSS3 3D立方体效果-transform也不过如此

    CSS3系列已经学习了一段时间了,第一篇文章写了一些css3的奇技淫巧,原文戳这里,还获得了较多网友的支持,在此谢过各位,你们的支持是我写文章最大的动力^_^. 那么这一篇文章呢,主要是通过一个3D立 ...

  4. javascript单元测试框架mochajs详解

    关于单元测试的想法 对于一些比较重要的项目,每次更新代码之后总是要自己测好久,担心一旦上线出了问题影响的服务太多,此时就希望能有一个比较规范的测试流程.在github上看到牛逼的javascript开 ...

  5. ubuntu系统下如何修改host

    Ubuntu系统的Hosts只需修改/etc/hosts文件,在目录中还有一个hosts.conf文件,刚开始还以为只需要修改这个就可以了,结果发现是需要修改hosts.修改完之后要重启网络.具体过程 ...

  6. Spark踩坑记——数据库(Hbase+Mysql)

    [TOC] 前言 在使用Spark Streaming的过程中对于计算产生结果的进行持久化时,我们往往需要操作数据库,去统计或者改变一些值.最近一个实时消费者处理任务,在使用spark streami ...

  7. 验证管理员权限(C#)

    参考页面: http://www.yuanjiaocheng.net/webapi/test-webapi.html http://www.yuanjiaocheng.net/webapi/web-a ...

  8. 使用HTML5的cavas实现的一个画板

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <meta http-e ...

  9. [Hadoop in Action] 第5章 高阶MapReduce

    链接多个MapReduce作业 执行多个数据集的联结 生成Bloom filter   1.链接MapReduce作业   [顺序链接MapReduce作业]   mapreduce-1 | mapr ...

  10. CentOS下Zabbix安装部署及汉化

    搭建环境:Centos6.5_x86_64,Zabbix2.4.5,epel 源 服务端: 1.安装开发软件包yum -y groupinstall "Development Tools&q ...