में कोई विधि मौजूद है या नहीं, मैं जांचना चाहता हूं कि एक लाइब्रेरी में एक फ़ंक्शन मौजूद है जो स्थिर है। मैंने फ़ंक्शन और method_exists को देखा है, लेकिन ऐसा कोई तरीका नहीं मिला है जो मुझे उन्हें एक सापेक्ष संदर्भ में कॉल करने की अनुमति देता है।पता लगाएं कि एक स्थिर वर्ग
class myClass{
function test1()
{
if(method_exists("myClass", "test1"))
{
echo "Hi";
}
}
function test2()
{
if(method_exists($this, "test2"))
{
echo "Hi";
}
}
function test3()
{
if(method_exists(self, "test3"))
{
echo "Hi";
}
}
}
// Echos Hi
myClass::test1();
// Trys to use 'self' as a string instead of a constant
myClass::test3();
// Echos Hi
$obj = new myClass;
$obj->test2();
मैं इसे स्थिर संदर्भ से बाहर ले जाने की जरूरत के बिना परीक्षण 3 गूंज बनाने के लिए हाय समारोह मौजूद रहने पर, सक्षम होना चाहिए: यहाँ एक बेहतर उदाहरण है। वर्ग को एक्सेस करने के लिए कीवर्ड को देखते हुए 'स्वयं' होना चाहिए, क्योंकि $ यह असाइन किए गए वर्गों के लिए है।
test1() विधि पर्याप्त क्यों नहीं है? – gapple
क्योंकि मैं इसे एक कक्षा में रखना चाहता हूं जिसे कई वर्गों द्वारा बढ़ाया जाएगा। मैं इसे प्राप्त करने के लिए एक जादू निरंतर उपयोग कर सकता हूं, लेकिन एक आसान तरीका होना चाहिए। –