php中对象是引用类型吗?
来源:互联网 发布:linux删除tomcat日志 编辑:程序博客网 时间:2024/05/14 20:40
这貌似是一个极其简单的问题,还用得着专门写一篇博文?各位看官,最初我也这么认为,但这的确蒙蔽了你那水灵灵的小眼睛,不妨看看什么是引用?
$a = 10;
$b = &$a;
$b = 20;
var_dump($a,$b);
在这段极其简单的代码中,$b是$a的引用,也即是别名,修改$b,$a会变,反之亦然。这就是所谓的引用,那对象是不是也是这样的呢?
class A
{
public $num = 10;
}
$a = new A();
$a->num = 20;
function demo($b)
{
$b[0] = 5;
var_dump($b);
}
demo($a)
var_dump($a);
你会发现两次输出一样,那这是不是说明对象做函数参数时是引用传参呢?在这一点上不得不说千锋的学生的确是勤学好问,我刚开始以为是引用传参,但同学提出如果你把demo里修改为:
function demo($b)
{
$b = new A();
var_dump($b);
}
两次输出并不一样!这是为什么呢?如果从c语言角度讲,php里的任何变量,包括对象都是指针,对象做参数相当于二重指针,所以当$b指向一个全新的对象后,并不影响$obj,所以对象做函数参数并不是引用传参!又这么一帮勤学好问的学生,整个水准都不一样了。
阅读全文
0 0
- php中对象是引用类型吗?
- php中对象是引用类型吗?
- php中对象是引用类型吗?
- php中对象是引用类型吗?
- PHP数组是否是引用类型?
- C#中数组是引用类型
- php数组是值传递,对象是引用传递
- Java 中对象引用的类型
- Java对象的4中引用类型
- net中String是引用类型还是值类型
- net中String是引用类型还是值类型
- net中String是引用类型还是值类型
- Net中String是引用类型还是值类型
- net中String是引用类型还是值类型
- ObjectTypeExample 引用类型的值"对象"是引用类型的实例JavaScript
- 引用可以是void类型吗?
- Java中int和Integer的区别:int 是基本类型,直接存数值 ;integer是对象,用一个引用指向这个对象
- 类是引用类型
- 熊猫烧香,比特币病毒
- 工厂模式&抽象工厂模式
- Java中@Override的作用
- 为什么1除以2=0余数1?余数就是它本身 1呢?
- postfix邮件服务:远程发送及访问控制
- php中对象是引用类型吗?
- 猜数游戏
- ConcurrentHashMap
- MySql建数据库,建表,建表约束
- 第二行代码学习笔记——第十二章:最佳的 UI 体验——Material Design 实战
- python定期爬取GitHub上每日流行项目
- t-SNE理解
- 算法笔记
- Android集成支付宝支付(最新版,无脑操作)