2012-07-19 11 views
12

मुझे PHP में कोई समस्या है। मेरी php फ़ाइल में, मैं निम्नलिखित लाइन बनाया:एक ही पंक्ति में कक्षा विधियों के लिए एकाधिक कॉल कैसे करें?

$foo = $wke->template->notify() 
        ->type("ERROR") 
        ->errno("0x14") 
        ->msg("You are not logged.") 
        ->page("login.tpl"); 

अंत में, मैं की जरूरत है मेरी $foo चर इस वापस आ जाएगी:

$foo->type = "ERROR" 
$foo->errno= "0x14" 
$foo->msg= "You are not logged." 
$foo->page= "login.tpl" 

कृपया ध्यान दें कि $wke->template जहां मैं फोन की जरूरत है notify() तत्व।

+2

की है स्पष्ट नहीं है मिल जाएगा। शब्दों के द्वारा अपने मूल इरादों को समझाएं – zerkms

+0

आप इसे एक पंक्ति में करने का आग्रह क्यों करते हैं? आपको इसे अलग-अलग कॉल में करना चाहिए! – alfasin

+0

आपके उत्तर के लिए धन्यवाद। मुझे आवश्यक सभी सूचनाओं के साथ एक चर बनाने के लिए एक विधि बनाने की आवश्यकता है। मुझे विशिष्ट चीजों को करने के लिए बुलाए गए सभी तरीकों को अनुकूलित करने की आवश्यकता है और साथ ही, मुझे आवश्यक सभी सूचनाएं वापस करनी होंगी। – DrSAS

उत्तर

30

कक्षा के एक ही ऑब्जेक्ट को वापस करने वाले फ़ंक्शन को "->" द्वारा एक-एक करके कक्षा के फ़ंक्शन को कॉल करने का तरीका। नीचे उदाहरण देखें। आप इस

class Wke { 

    public $type; 
    public $errno; 
    public $msg; 
    public $page; 

    public $template = $this; 

    public function notify(){ 
     return $this; 
    } 

    public function errorno($error){ 
     $this->errno = $error; 
     return $this; // returning same object so you can call the another function in sequence by just -> 
    } 
    public function type($type){ 
     $this->type = $type; 
     return $this; 
    } 
    public function msg($msg){ 
     $this->msg = $msg; 
     return $this; 
    } 
    public function page($page){ 
     $this->page = $page; 
     return $this; 
    } 
} 

पूरे जादू सवाल return $this;

+0

यह काम किया है! धन्यवाद! – DrSAS

+0

कृपया वोट दें। –

+0

मैं अभी के लिए नहीं कर सकता। मुझे माफ करना वोट करने का अधिकार नहीं है (पर्याप्त प्रतिष्ठा नहीं): – DrSAS

1

उन तरीकों में से प्रत्येक को उस वस्तु को वापस करने की आवश्यकता होगी जो उसमें तर्क के रूप में सेट की गई है। संभवतः, यह template होगा जिसमें प्रत्येक ऑब्जेक्ट प्रॉपर्टी होगी, और जब आप विधि को कॉल करते हैं तो यह उस संगत चर को सेट करता है और खुद को लौटाता है।

संबंधित मुद्दे