この時点で、次のようなクラスがあるとしましょう。
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
ます。
要約すると、私の質問は、これらのメソッドをオプションでチェーンする機能を実現する方法ですが、必要に応じて(出力例のように)非オブジェクトを返します。