簡體   English   中英

如何獲得該類中的所有函數名稱? (不擴展)

[英]How do I get all the function names in the class? (Without extends)

我正在嘗試使用PHP獲取類中的所有函數名稱。 使用get_class_methods()方法。 但這會寫入我擴展的類的函數名稱。 我想要的只是我正在調用的類的函數名稱。

范例:

class a {
   public function index() {
      //...
   }
}

class b extends a {
   public function indexb() {
     //...
   }
}

print_r(get_class_methods(new b()));

輸出:

array([0] => index, [1] => indexb);

(索引)我不要這個區域。

最好的祝福。

如果只希望子類的方法,則需要使用Reflection

<?php

class A
{
    public function index() {}
}

class B extends A
{
    public function indexB() {}
}

$reflection = new ReflectionClass('B');

$methods = array_reduce($reflection->getMethods(), function($methods, $method) {
    if ($method->class == 'B') $methods[] = $method->name;

    return $methods;
}, []);

print_r($methods);

還有一個工作示例: https : //3v4l.org/veTeQ

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM