क्या यह किसी भी तरह से PHP फ़ाइल का स्थान प्राप्त करना संभव है, रनटाइम पर मूल्यांकन किया गया है? मैं जादू निरंतर __DIR__
के समान कुछ मांग रहा हूं, लेकिन देर से बाध्यकारी के रूप में रनटाइम पर मूल्यांकन किया। self
और static
साथ इसी तरह के अंतर:PHP __DIR__ मूल्यांकन रनटाइम (देर से बाध्यकारी)?
__DIR__ ~ self
??? ~ static
मेरा लक्ष्य एक अमूर्त वर्ग में एक विधि को परिभाषित किया जाता है, जो प्रत्येक __DIR__
वारिस वर्ग के लिए क्रमशः का मूल्यांकन किया जाएगा इस्तेमाल करते हैं। उदाहरण:
abstract class Parent {
protected function getDir() {
// return __DIR__; // does not work
return <<I need this>>; //
}
}
class Heir extends Parent {
public function doSomething() {
$heirDirectory = $this->getDir();
doStuff($heirDirectory);
}
}
जाहिर है, इस समस्या तब होती है केवल यदि Parent
और Heir
अलग निर्देशिका में हैं। कृपया इसे ध्यान में रखें। इसके अलावा, विभिन्न वारिस कक्षाओं में अधिक से अधिक परिभाषित करने getDir
फिर से हो सकता है और विकल्प प्रतीत नहीं होता है, यही कारण है कि हम विरासत है है ...
यह अच्छा है ... कुछ और, लोग? क्लीनर बेहतर डिजाइन। –
आप प्रतिबिंब ऑब्जेक्ट का भी उपयोग कर सकते हैं: 'वापसी का नाम (नया \ ReflectionObject ($ यह)) -> getFileName());' –