php建立对象的问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 00:36:24
$modelPosts=& new Posts();,其中的&使什么意思呢?
谢谢。
应该是$object3=& new classes2;吧。
谢谢你的回答。
不过还有个疑问,这样做有什么作用呢?

变量引用的意思
举例1:
$object1 = new classes; //声明了一个对象
$object2 = new classes;
//那么
$object1 === $object2; //对吗?
//那好
$object3 =& new classes;
$object1 = $object2 = new clsses2; //这时候对象1,2 和对象 3 是等值的吗?

$object3 != $object1 && $object2;
如上例子可以看出,对象 1,2,3 虽然都是 classes 的对象,但对象 3 是引用变量,PHP 会给 3 一个单独的内存来存储它的值,不会因为其他对象内存值的改变而改变

你要知道,一个类可以有多个对象,但一个对象只能对应一个类。
如果一个类的多个对象一旦值发生改变,那么其他的对象值也会跟着改变。如果想保持该类的对象值保持持久,可以使用此方法来单独为这个对象申请一个内存空间。换句话说,这个对象是独立的,不在受其他对象值的改变而影响。
给你做个直观的图解吧,注意理解:

对象1 = 对象2 =& 对象3 => 存放内存1
对象1 值发生改变 => 存放内存1
对象2 的值跟着对象1的值改变 => 与对象1共享存放内存1 (它们也许不再是对象)
那么对象3 => 改变存放内存2(仍然是原类的对象)

如上可以直观的看出, =& 的作用是什么