2010-01-11 10 views
6

बस मामले के लिए ऑटोलोड लोड काम नहीं करेगा, मुझे आश्चर्य है कि PHP के साथ एक विधि के अंदर कक्षा शामिल करने के लिए ठीक है या नहीं?क्या मैं एक विधि के अंदर एक कक्षा शामिल कर सकता हूं?

उदाहरण:

public method doSomething() { 
    include ('MyClass.php'); 
    $foo = MyClass::doAnotherThing(); 
} 

उत्तर

3

हां, आप निश्चित रूप से ऐसा कर सकते हैं। असल में, यह वही है जो ऑटो लोडिंग वैसे भी करता है, क्योंकि __autoload() स्वयं एक फ़ंक्शन है, और आप आमतौर पर इसे लोड करने के लिए अपनी कक्षा फ़ाइल के लिए देखने के लिए इसका उपयोग करते हैं।

यदि आप मैन्युअल रूप से अपनी कक्षा फ़ाइलों को शामिल करते हैं, तो आप निश्चित रूप से या require() के बजाय require_once() का उपयोग करना चाहेंगे, अन्यथा आपको कक्षा की डुप्लिकेट घोषणा मिल जाएगी।

+1

+1 ऑटोलोड और * _once() के लिए +1 –

3

हाँ यह ठीक काम करता है, और कक्षा वैश्विक क्षेत्र में उपलब्ध हो जाएगा। यदि फ़ाइल में कक्षा से अन्य कोड शामिल है, तो उस कोड को निष्पादित किया जाएगा जैसे कि यह फ़ंक्शन के अंदर था।

1

वैसे तो आप शायद require या require_once करना चाहते हैं और शायद class_exists पर परीक्षण करें, लेकिन हाँ आप इसे कर सकते हैं।

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

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