इसे मेथड चेनिंग कहा जाता है और क्लास ($this), या उन फ़ंक्शंस से किसी अन्य क्लास ऑब्जेक्ट के संदर्भ को वापस करके किया जाता है। फिर आप लौटाई गई वस्तु पर एक विधि को कॉल कर सकते हैं।
यहाँ एक सरल उदाहरण है।
class foo{
protected $_bar;
public function bar($value){
$this->_bar = $value;
return $this;
}
public function out(){
echo $this->_bar;
}
}
$a = new foo();
$a->bar('hello')->out();
आउटपुट:
'hello'
बस थोड़ा और समझाने के लिए, उपरोक्त कोड $a->bar('hello')->out();
मोटे तौर पर ऐसा करने के बराबर है:
$a = new foo();
$b = $a->bar('hello'); //$a and $b are the same instance of the object
$b->out();
अब क्योंकि bar()
$this
returns लौटाता है हम इसे $b
. को असाइन कर सकते हैं ऊपर की तरह और फिर कॉल करें out()
. लेकिन $a
और $b
दोनों foo
. के एक ही उदाहरण का संदर्भ देते हैं ऑब्जेक्ट, क्योंकि हमने $this
. लौटाया है bar()
. से . इसलिए इस अतिरिक्त "नकली" चर की कोई आवश्यकता नहीं है क्योंकि हम सीधे अगली कॉल के लिए रिटर्न ऑब्जेक्ट का संदर्भ दे सकते हैं। यह किसी भी ऑब्जेक्ट के साथ काम करता है जो किसी विधि से लौटाया जाता है (न केवल $ यह), लेकिन जाहिर है कि श्रृंखला में अगली कॉल लौटाई गई वस्तु के विरुद्ध है।