2010-12-13 113 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