php中变量的3中赋值方式
2015-11-08 14:35
621 查看
1、传值赋值,例如$a=1,$b=$a等;
2、引用赋值,例如$a=&$b,即$a和$b在都指向了内存中的同一个存储变量值得地址;
3、引用计数传值,在php和js中的对象都是默认的传值方式都是引用计数传值,例子如下:
<?php
class Dog{
public $name="小花";
public $leg=4;
}
$a=new Dog;//此时,$a指向了内存中的一个地址(假设0XFFAD[1]),该地址又指向最终对象的值
$b=$a;//此时,$b和$a都指向了内存中的另一个地址(0XFFAD[2]),该地址又指向最终对象的值
var_dump($b->leg);//结果是int 4
$b=999;
var_dump($b);//结果是int 999;
var_dump($a);//此时的结果不是int 999,而是object(Dog)[1]
2、引用赋值,例如$a=&$b,即$a和$b在都指向了内存中的同一个存储变量值得地址;
3、引用计数传值,在php和js中的对象都是默认的传值方式都是引用计数传值,例子如下:
<?php
class Dog{
public $name="小花";
public $leg=4;
}
$a=new Dog;//此时,$a指向了内存中的一个地址(假设0XFFAD[1]),该地址又指向最终对象的值
$b=$a;//此时,$b和$a都指向了内存中的另一个地址(0XFFAD[2]),该地址又指向最终对象的值
var_dump($b->leg);//结果是int 4
$b=999;
var_dump($b);//结果是int 999;
var_dump($a);//此时的结果不是int 999,而是object(Dog)[1]
public 'name' => string '灏忚姳' (length=6) public 'leg' => int 4由此可以看出对象的传值方式跟第二种引用传值是有点区别的。
相关文章推荐
- PHP面向对象:延迟静态绑定(static关键字)
- Ubuntu中tftp测试
- PHPCMS调用'N'级栏目下的子栏目
- php学习之旅:static变量与方法
- thinkphp模板引擎
- thinkphp更新
- thinkphp查询
- thinkphp删除
- thinkphp新增
- 自学php-条件控制语句
- phpstorm安装,破解及使用
- Base64编码原理分析与PHP实现
- thinkphp传递参数
- QPS 与 TPS 简介
- ConterReplaceBehavior.class.php模板内容替换,如__PUBLIC__
- php实现处理输入转义字符的代码
- thikphp创建共享数据config.php
- Erlang OTP应用组织形式
- thinkphp连接数据库
- ViewPager-------Fragment作为ViewPager的数据源(FragmentPagerAdapter)