जैसे त्रुटि कहती है, आप $this . का उपयोग नहीं कर सकते वर्ग परिभाषा के बाहर। $_db use का उपयोग करने के लिए वर्ग परिभाषा के बाहर, पहले इसे public बनाएं private . के बजाय :
public $_db
फिर, इस कोड का उपयोग करें:
$authDb = new AuthDb();
$authDb->_db->prepare($query); // rest of code is the same
--
आपको यह समझना होगा कि $this . क्या है वास्तव में मतलब है। जब एक वर्ग परिभाषा के अंदर उपयोग किया जाता है, $this उस वर्ग की किसी वस्तु को संदर्भित करने के लिए उपयोग किया जाता है। तो अगर आपके पास कोई फ़ंक्शन था foo अंदर AuthDB , और आपको $_db . तक पहुंचने की आवश्यकता है foo . के भीतर से , आप $this . का उपयोग करेंगे PHP को यह बताने के लिए कि आप $_db चाहते हैं उसी वस्तु से foo के अंतर्गत आता है।
आप शायद यह स्टैक ओवरफ्लो प्रश्न पढ़ना चाहें:PHP:self vs $this ए>