उनल उसी PHP वर्ग में किसी अन्य विधि से विधि को कॉल करना




मेरा फोन क्यों नहीं जा रहा है (3)

आप कार्यों को static रूप में घोषित कर रहे हैं और इसलिए वे ऑब्जेक्ट संदर्भ में नहीं हैं - आप उन्हें DomainHandler::getClientInfo() या self::getClientInfo() साथ कॉल कर सकते हैं।

यदि आपको स्थिर होने के लिए फ़ंक्शंस की स्पष्ट रूप से आवश्यकता नहीं है, तो आप static कीवर्ड छोड़ सकते हैं और फिर $this->getClientInfo() काम करेगा।

मैं कक्षा में किसी अन्य विधि के भीतर से एक विधि का उपयोग करने की कोशिश कर रहा हूं। मुझे PHP5 ओओपी में ज्यादा अनुभव नहीं है, और मैंने जवाब के लिए चारों ओर देखा, लेकिन कोई भी नहीं मिला। मैं sendRequest () में getRientInfo () का उपयोग करने की कोशिश कर रहा हूं, जो एक ही कक्षा में है।

class DomainHandler {

    public static function getClientInfo($db, $client_id)
    {
        //Do stuff
    }

    public static function sendRequest($details)
    {

        require_once('MySQL.class.php');
        $db = new MySQL;

        getClientInfo($db, $client);
    }
}

और यह मुझे बताता है:

घातक त्रुटि: अपरिभाषित फ़ंक्शन पर कॉल करें ClClientInfo ()

मैंने भी कोशिश की है

parent::getClientInfo($db, $client); 

तथा

$this->getClientInfo($db, $client);

कोई फायदा नहीं।

कोई विचार?


'स्वयं' वह कीवर्ड है जिसे आप ढूंढ रहे हैं

जो कहा, क्या आप समझा सकते हैं कि आपको स्थिर होने के तरीकों की आवश्यकता क्यों है? "स्थैतिक" खराब शैली है और इससे बचा जाना चाहिए।


यह एक स्थिर विधि है इसलिए आपको इसे self::getClientInfo या DomainHandler::getClientInfo साथ कॉल करना DomainHandler::getClientInfo

इसके अलावा: आप ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग पर पढ़ना चाहेंगे क्योंकि ऐसा लगता है कि आपने अभी तक यह नहीं समझा है कि यह वास्तव में क्या है (यह केवल क्लास फू {और} के बीच फ़ंक्शंस नहीं डाल रहा है और उनके सामने सार्वजनिक स्थैतिक डाल रहा है)





methods