जैसे त्रुटि कहती है, आप $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 ए>