के सभी सार्वजनिक कार्यों को सूचीबद्ध करने के लिए कैसे करें मैंने get_class_methods()
के बारे में सुना है लेकिन क्या किसी विशेष वर्ग से सभी सार्वजनिक तरीकों की एक सरणी एकत्र करने के लिए PHP में कोई तरीका है?PHP
PHP
उत्तर
हाँ आप प्रतिबिंब कक्षाओं/विधियों पर एक नज़र डाल सकते हैं।
http://php.net/manual/en/book.reflection.php और http://www.php.net/manual/en/reflectionclass.getmethods.php
$class = new ReflectionClass('Apple');
$methods = $class->getMethods(ReflectionMethod::IS_PUBLIC);
var_dump($methods);
मैं सादगी खोद रहा हूं जो प्रतिबिंब विधि के तत्कालता के माध्यम से सांख्यिकी का उपयोग करके होता है – Kristian
क्या आपने इस तरह से प्रयास किया है?
$class_methods = get_class_methods(new myclass());
foreach ($class_methods as $method_name) {
echo "$method_name\n";
}
मुझे लगता है कि क्रिस्टियन विशेष रूप से सार्वजनिक तरीकों की सूची के लिए पूछ रहा है। – Stegrex
get_class_methods($theClass)
साथ सभी तरीकों मिलने के बाद आप कुछ इस तरह के साथ उन के माध्यम से पाश कर सकते हैं:
foreach ($methods as $method) {
$reflect = new ReflectionMethod($theClass, $method);
if ($reflect->isPublic()) {
}
}
get_class_methods()
के रूप में गुंजाइश के प्रति संवेदनशील है, आप सभी प्राप्त कर सकते हैं कक्षा के सार्वजनिक तरीकों से कक्षा के बाहर से कॉल को कॉल करके:
new Foo;
) के दायरे के अंदर से एक कॉल वापसी होगी जबकि
array
0 => string 'baz' (length=3)
1 => string '__construct' (length=11)
:
class Foo {
private function bar() {
var_dump(get_class_methods($this));
}
public function baz() {}
public function __construct() {
$this->bar();
}
}
var_dump(get_class_methods('Foo'));
इच्छा उत्पादन निम्नलिखित: ५३६९१३६३२१०
तो, यह वर्ग ले
array
0 => string 'bar' (length=3)
1 => string 'baz' (length=3)
2 => string '__construct' (length=11)
उहम, 'get_class_methods ($ class)' * * किसी विशेष वर्ग के सभी सार्वजनिक तरीकों की एक सरणी एकत्र करने का एक तरीका है ... –
यदि आप 'get_class_meth का उपयोग करना चाहते हैं ओडीएस 'केवल सार्वजनिक तरीकों को पुनर्प्राप्त करने के लिए, इसे कक्षा के बाहर उपयोग करना चाहिए .. – Federkun
get_class_methods ($ class) सभी विधियों को लौटाता है जो या तो सार्वजनिक हैं या उनके पास कोई महत्वपूर्ण शब्द नहीं है। तो किसी भी निजी तरीके को वापस नहीं किया जाएगा – daslicht