美文网首页
php中对象是引用类型吗?

php中对象是引用类型吗?

作者: dagailv | 来源:发表于2017-06-12 11:49 被阅读0次

这貌似是一个极其简单的问题,还用得着专门写一篇博文?各位看官,最初我也这么认为,但这的确蒙蔽了你那水灵灵的小眼睛,不妨看看什么是引用?

$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,所以对象做函数参数并不是引用传参!又这么一帮勤学好问的学生,整个水准都不一样了。

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。互联网+时代,时刻要保持学习,携手千锋PHP,Dream It Possible。

相关文章

  • php中对象是引用类型吗?

    这貌似是一个极其简单的问题,还用得着专门写一篇博文?各位看官,最初我也这么认为,但这的确蒙蔽了你那水灵灵的小眼睛,...

  • php中对象是引用类型吗?

    这貌似是一个极其简单的问题,还用得着专门写一篇博文?各位看官,最初我也这么认为,但这的确蒙蔽了你那水灵灵的小眼睛,...

  • php中对象是引用类型吗?

    千峰PHP 这貌似是一个极其简单的问题,还用得着专门写一篇博文?各位看官,最初我也这么认为,但这的确蒙蔽了你那水灵...

  • php中对象是引用类型吗?

    这貌似是一个极其简单的问题,还用得着专门写一篇博文?各位看官,最初我也这么认为,但这的确蒙蔽了你那水灵灵的小眼睛,...

  • Android 中的引用类型初探

    原始地址:Android 中的引用类型初探 引用种类 强引用:在 GC 中如果发现一个对象是可达的,那么 GC 在...

  • js高级程序设计第五章(部分整理)

    引用类型 对象是某个特定的引用类型的实例 5.1 Object类型:大多数引用类型的值都是Object的实例 对象...

  • Java核心知识点(二)

    Java面向对象基本概念——引用 Java语言中除基本类型之外的变量类型都称之为引用类型 Java中的对象是通过引...

  • javascript高级程序设计读书笔记(五)

    引用类型 对象是某个特定的引用类型的实例。新对象是使用new操作符后跟一个构造函数来创建的。 Object类型 创...

  • Es6

    基本数据类型,数据存储在栈(statck)中,引用数据类型 数据存 在es6中 数组、对象是引用形数据 在堆(he...

  • Lesson2

    Class 和Struct区别 Class的对象是引用类型,Struct的对象是值类型 Struct没有继承

网友评论

      本文标题:php中对象是引用类型吗?

      本文链接:https://www.haomeiwen.com/subject/nhllqxtx.html