首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何获取类中的所有函数名?(不带扩展)

如何获取类中的所有函数名?(不带扩展)
EN

Stack Overflow用户
提问于 2018-07-25 07:34:05
回答 1查看 38关注 0票数 1

我正在尝试用PHP获取一个类中的所有函数名。使用get_class_methods()方法。但是它会写入我扩展的类的函数名。我想要的只是我调用的类的函数名。

示例:

代码语言:javascript
复制
class a {
   public function index() {
      //...
   }
}

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

print_r(get_class_methods(new b()));

输出:

代码语言:javascript
复制
array([0] => index, [1] => indexb);

(索引)我不想要这个区域。

诚挚的问候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-25 07:44:45

如果您只需要用于子类的方法,则需要使用Reflection

代码语言:javascript
复制
<?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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51508965

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档