在 PHP 中别名变量

nnk*_*nnk 1 php alias class object

我有一个图书馆课class someClass{....}。我为这个类创建了一个对象。

$objectA = someClass;

我想为类似的$objectA东西使用别名$objectB,因此我的课程更有意义。

PS:$objectB应该点$objectA

Joh*_*nde 6

$objectB = $objectA;
Run Code Online (Sandbox Code Playgroud)

手册

经常被提及的 PHP 5 OOP 的关键点之一是“默认情况下通过引用传递对象”。这并不完全正确。本节使用一些示例纠正了这种一般性想法。

PHP 引用是一个别名,它允许两个不同的变量写入相同的值。从 PHP 5 开始,对象变量不再包含对象本身作为值。它只包含一个对象标识符,它允许对象访问者找到实际的对象。当一个对象通过参数发送、返回或分配给另一个变量时,不同的变量不是别名:它们持有指向同一个对象的标识符的副本。

<?php
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";

?>
Run Code Online (Sandbox Code Playgroud)

上面的例子将输出:

2
2
2
Run Code Online (Sandbox Code Playgroud)