php从类函数传回一个对象

时间:2012-10-20 14:52:13

标签: php class

我有一组PHP函数,我想进入一个新类。其中一个功能是在参数中使用& $ obj来修改原始对象:

function process_new_place_names(&$obj)

在此函数中对$ obj所做的任何更改都会传回脚本。

问题是,我是否可以在PHP类中执行此操作?此外,这种方法的术语是什么?

2 个答案:

答案 0 :(得分:3)

答案 1 :(得分:2)

正如SomeKittens所说,这在课堂上是完全可能的。但是,如果$obj本身就是一个类的实例,而您需要做的就是修改其成员变量(称为 mutating 对象),那么就不需要通过引用传递它

例如,以下代码将输出baz;

class Foo
{
    public $bar;
}

function process_new_place_names($obj)
{
    $obj->bar = 'baz';
}

$obj = new Foo();
$obj->bar = 'bar';
process_new_place_names($obj);
echo $obj->bar;

只有在想要更改变量本身的值时才需要传递引用;例如,重新分配对象引用:

function process_new_place_names(&$obj)
{
    $obj = new Foo();
    $obj->bar = 'baz';
}