2010-12-13 3 views
1

У меня есть вопрос синтаксиса о PHP OOP.PHP OOP question

У меня есть две функции.

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

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

$ Тело объявлено выше в функции. если я хочу вызвать функцию return_value (что я понимаю, ничего не делает - это просто пример для меня, чтобы учиться) на setBody, для чего это синтаксис?

Я пробовал $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). Я думаю, что это может смутить ОП. – netcoder

+0

@netcoder - хорошая точка, и спасибо за дополнительную информацию! –

5

Вы используете $this-> обозначения как на свойства, и способ, как это:

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

Спасибо за подсказку! – sehummel

+3

@ shummel7845: Не забудьте нажать галочку рядом с ответом, который лучше всего поможет, чтобы отметить его как принятый. Вы также должны сделать то же самое для своих предыдущих вопросов. – BoltClock