我在 php.net 手册中发现了以下几行,我无法理解他们到底想说什么。
“从 PHP 5 开始,对象变量不再包含对象本身作为值。它只包含一个对象标识符,允许对象访问者找到实际对象。当一个对象通过参数发送时,返回或分配给另一个变量,不同的变量不是别名:它们持有标识符的副本,它指向同一个对象。”
我不明白什么是差异。在 php5 中的引用和标识符之间。他们给出了下面的例子。
class A {
public $foo = 1;
}
$a = new A;
$b = $a; // $a and $b are copies of the same identifier
// ($a) = ($b) = <id>
$b->foo = 2;
echo $a->foo."\n";
$c = new A;
$d = &$c; // $c and $d are references
// ($c,$d) = <id>
$d->foo = 2;
echo $c->foo."\n";
$e = new A;
function foo($obj) {
// ($obj) = ($e) = <id>
$obj->foo = 2;
}
foo($e);
echo $e->foo."\n";
//Outputs 2 2 2
当我们应该使用 ref 时,它会给出相同的输出。我们应该复制没有引用的对象吗?
如果有人能解释一下 ref 的确切含义,我将不胜感激。和标识符。
谢谢,吉米特