2010-12-13 154 views
1

我有一個關於PHP OOP的語法問題。PHP OOP問題

我有兩個功能。

public function setBody($body) { 
    $this->body = $body; 
} 

public function return_value($value) { 
    return $value; 
} 

$ body在函數中被聲明爲更高。如果我想在setBody上調用return_value函數(我沒有意識到這只是一個例子),那麼它的語法是什麼?我試過$this->body = return_value($body),它沒有工作。我也試過return_value($this->body)作爲第二行,也沒有工作。

在此先感謝您的幫助。

回答

7

你需要這樣做:

public function setBody($body) { 
    $this->body = $this->return_value($body); 
    // Make a reference to the object you are dealing with -- return_body 
    // is not a global function -- it's a method of the object you are creating. 
} 

public function return_value($value) { 
    return $value; 
} 
+2

剛一說明,使用的' $ this'(或'this')關鍵字在PHP中是必需的,但不適用於大多數OO編程語言(如C++,C#和Java)。我認爲這可能會讓OP感到困惑。 – netcoder 2010-12-13 23:59:36

+0

@netcoder - 好點,並感謝您的額外信息! – 2010-12-14 00:00:31

5

您使用$this->符號的屬性和方法兩個,像這樣:

public function setBody($body) { 
    $this->body = $this->return_value($body); 
} 
+0

感謝您的及時答覆! – sehummel 2010-12-13 23:48:35

+3

@ shummel7845:記得點擊最有幫助的答案旁邊的複選標記,將其標記爲已接受。你以前的問題也應該這樣做。 – BoltClock 2010-12-13 23:53:02