2012-10-20 73 views
1

我有一組PHP函數,我想移入一個新類。上述功能之一是使用& $ OBJ的參數修改原來的對象:php從類功能傳回對象

function process_new_place_names(&$obj) 

在此功能$ OBJ所做的任何更改都回傳給腳本。

問題是,我可以在PHP類中做這個嗎?另外,這種方法的術語是什麼?

回答

2

由於SomeKittens說,這是完全有可能在類中。但是,如果$obj本身就是一個類的實例,並且您只需修改其成員變量(稱爲變異爲該對象),則無需通過引用來傳遞它。

例如,以下代碼將輸出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'; 
} 
+1

@Nick,如果你想知道爲什麼你的代碼使用,即使你的函數參數是爲了拿一個對象的引用,到PHP 5之前,這是實際需要。 – goat

+0

@rambocoder我忘記了!謝天謝地,PHP 5。 –