php中的对象赋值

如果现在问你一个问题:

<?php
class A{
    public $a = 1;
}
$a = new A();
$b = $a;

$b->a = 3;
print_r($a->a);

上面这段代码将打印出什么?你的回答是什么?

在以前,我的回答会是$a和$b是两个不同的对象,所以输出的是1。

如果你的php版本是4,那么,这个回答是没有问题的。php4版本及以前对象间的赋值是按值传递的,所以会是两个会不想干的对象,而php4之后的版本却是按值传递的,所以,这里输出应该是3.

原文地址:https://www.cnblogs.com/totian/p/7383745.html