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>"; ?>
(完.)
PHP赋值运算的更多相关文章
- js赋值运算的理解
简介 js引擎由于为了效率,很多时候的非直接量赋值都不是copy一份在赋值给新的变量,而是一个引用 ps:直接量:直接值数字字符串等 为什么使用len = doms.length; 里的len效率要比 ...
- 使用C/C++,赋值运算时发生的转换
使用C/C++,赋值运算时发生的转换主要有以下四种情况 一: 两边类型不同: 结果: 自动完成类型转换! 二: 长数赋给短数: 结果: 截取长数的低位送给短数! 三: 短数赋给长数: 结果: 原来是什 ...
- C++中的构造函数,拷贝构造函数和赋值运算
关于C++中的构造函数,拷贝构造函数和赋值运算,以前看过一篇<高质量C++/C编程指南>的文章中介绍的很清楚,网上能搜索到,如果想详细了解这方面的知识可以参看一下这篇文章. 常见的给对象赋 ...
- ecos3.0编译 if_lancepci.c:528: 错误: 赋值运算的左操作数必须是左值
/home/xin/ecos3/ecos-3.0/packages/devs/eth/amd/lancepci/v3_0/src/if_lancepci.c:528: 错误: 赋值运算的左操作数必须是 ...
- 算术运算,赋值运算,if语句,while,continue语句
算术运算 print(10 / 3)=3.333333333333 print(10 // 3)=3 print(10 ** 2)=100 赋值运算增量赋值 age=18 age+=1 print(a ...
- 【学习笔记】--- 老男孩学Python,day3 while 循环 运算符 逻辑、赋值运算
1. 循环. while循环 while 条件: 代码块(循环体) 执行流程: 1. 判断条件是否为真. 如果真. 执行代码块 2. 再次判断条件是否为真...... 3. 当条件为假.执行else ...
- 总结day5 ---- ,字典的学习,增删改查,以及字典的嵌套, 赋值运算
内容大纲: 一:字典的定义 二:字典的增加 >1:按照key增加, 无则增加,有则覆盖 >2:setdefault() ,无则增加,有则不变 三:字典的删除 >1:pop() ...
- 关于java赋值运算的一个小例子
直接贴代码,这个也是做题目中遇见的,觉得很好奇,查了一波,然后自己编写代码看了一下,果真如此,哈哈哈...... public class 关于Boolean的赋值运算 { public static ...
- 《Effective C++》第2章 构造/析构/赋值运算(2)-读书笔记
章节回顾: <Effective C++>第1章 让自己习惯C++-读书笔记 <Effective C++>第2章 构造/析构/赋值运算(1)-读书笔记 <Effecti ...
随机推荐
- nodejs进阶(6)—连接MySQL数据库
1. 建库连库 连接MySQL数据库需要安装支持 npm install mysql 我们需要提前安装按mysql sever端 建一个数据库mydb1 mysql> CREATE DATABA ...
- 首个threejs项目-前端填坑指南
第一次使用threejs到实际项目中,开始的时候心情有点小激动,毕竟是第一次嘛,然而做着做着就感受到这玩意水好深,满满的都是坑,填都填不过来.经过老板20天惨无人道的摧残,终于小有成就. 因为第一次搞 ...
- C# MVC 5 - 生命周期(应用程序生命周期&请求生命周期)
本文是根据网上的文章总结的. 1.介绍 本文讨论ASP.Net MVC框架MVC的请求生命周期. MVC有两个生命周期,一为应用程序生命周期,二为请求生命周期. 2.应用程序生命周期 应用程序生命周期 ...
- 02.SQLServer性能优化之---牛逼的OSQL----大数据导入
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 上一篇:01.SQLServer性能优化之----强大的文件组----分盘存储 http ...
- UWP开发之Mvvmlight实践九:基于MVVM的项目架构分享
在前几章介绍了不少MVVM以及Mvvmlight实例,那实际企业开发中将以那种架构开发比较好?怎样分层开发才能节省成本? 本文特别分享实际企业项目开发中使用过的项目架构,欢迎参照使用!有不好的地方欢迎 ...
- Javascript实用方法二
承接上一篇, Object keys object的keys方法能够获取一个给定对象的所有键(key/属性名)并以数组的形式返回.这个方法可以用于键的筛选.匹配等. var basket = { st ...
- Windows API 设置窗口下控件Enable属性
参考页面: http://www.yuanjiaocheng.net/webapi/create-crud-api-1-put.html http://www.yuanjiaocheng.net/we ...
- SHA-1算法
SHA-1.h #ifndef _SHA1_H #define _SHA1_H #include<iostream> using namespace std; //4个函数 #define ...
- openresty 前端开发入门四之Redis篇
这章主要演示怎么通过lua连接redis,并根据用户输入的key从redis获取value,并返回给用户 操作redis主要用到了lua-resty-redis库,代码可以在github上找得到 而且 ...
- java观察者模式
像activeMQ等消息队列中,我们经常会使用发布订阅模式,但是你有没有想过,客户端时如何及时得到订阅的主题的信息?其实就里就用到了观察者模式.在软件系统中,当一个对象的行为依赖于另一个对象的状态 ...