Мир ООП для меня довольно новичок, поэтому, пожалуйста, со мной.Цепь метода ООП необязательно возвращение
На данный момент, скажем, у меня есть класс, как так:
class Sentence {
__construct($content) {
$this->content = $content;
}
public function grab_word($num) {
$words = explode(" ", $this->content);
return $words[$num+1];
}
}
Таким образом, интерфейс дал позволит мне создать new Sentence
, и тогда я мог бы вызвать метод grab_word()
класса, чтобы принести слово предложение:
$sentence = new Sentence("Lorem ipsum dolor sit amet");
echo $sentence->grab_word(2);
Однако то, что я хотел бы сделать, это добавить еще один прикован метод класса, что дает мне возможность капитализировать это слово.
$sentence->grab_word(2); # -> ipsum
$sentence->grab_word(2)->caps(); # -> IPSUM
Очевидно, что это не сработает, потому что прикованные методы требуют наследования объектов. Если бы я должен был создать caps()
и связать эту функцию - он вернет ошибку из-за того, что возврат не является унаследованным Sentence
.
Чтобы подвести итог, мой вопрос заключается в том, как я могу добиться возможности связать эти методы по желанию, но при необходимости возвращать не-объект (как в моем примере на примере).
Короткие: вы не можете. Комплекс: вы можете создать объект для переноса текущего преобразованного значения, а затем реализовать '__toString()', чтобы этот объект неявно преобразовывался в строку при необходимости. Конечно, не стоит усилий. – mario