2011-05-10 60 views
0

對象的問題,如果我有這樣一個類:在面向對象的上下文

class1{ 
    public function doSomething($value, class2 $object){ 
    $object->setAVariable($value); 
    } 
} 

class2{ 
    protected $AVariable; 

    public setAVariable($value){ 
    $this->AVariable = $value; 
    return $this->AVariable; 
    } 

    public getAVariable(){ 
    return $this->AVariable; 
    } 
} 

在test.php的:

$object2 = new class2(); 
$object1 = new class1(); 
$value = 12; 
$object1->doSomething(12, $object2); 

問:

在test.php的

依然,我可以像這樣訪問$ value:

echo $object2->getAVariable(); 

哪個會返回12?

+5

似乎是一個TIY問題:*自己嘗試*。你是否運行過代碼?發生了什麼? – 2011-05-10 09:24:26

回答

1

修復DoSomething的方法:

public function doSomething($value, class2 $object){ 
    $object->setAVariable($value); 
    } 

而且這將是確定。然而,你的例子不起作用,但我認爲它輸入錯誤。

+0

是的,這是鍵入。感謝你的回答。 – 2011-05-10 09:28:45

0

不,因爲$object1class1:doSomething()未定義。如果您在那裏使用$object,則它將起作用,因爲doSomething()將調用$object->setAVariable(),在這種情況下,相同的對象(如$object2)位於外部範圍(您將該對象提供給doSomethig())。在class1的