如何从类变量数组中访问类成员?

Posted

技术标签:

【中文标题】如何从类变量数组中访问类成员?【英文标题】:How to access class members from an array of class variables? 【发布时间】:2010-02-17 21:22:34 【问题描述】:

我想使用 php 的反射功能从方法中检索参数名称列表。我有这样的课:

class TestClass 
    public function method($id, $person, $someotherparam) 
        return;
    

我可以使用如下代码获取列表:

$r = new ReflectionClass('TestClass');

$methods = $r->getMethods();

foreach($methods as $method) 
    $params = $method->getParameters();
    $p = $params[0]; // how can I combine this and the next line?
    echo $p->name;

我想知道如何从数组中访问类成员,所以我不必做作业。这可能吗?我尝试了echo ($params[0])->name 之类的方法,但出现错误。

【问题讨论】:

【参考方案1】:

你可以替换这两行:

$p = $params[0]; // how can I combine this and the next line?
echo $p->name;

由那一个人:

echo $params[0]->name;

即这里不需要任何类型的括号。

但是你不能使用这种语法:

($params[0])->name

它会给你一个

Parse error: syntax error, unexpected T_OBJECT_OPERATOR

【讨论】:

哦。我发誓我凭直觉尝试过,但我想我还有另一个错误。 一定期望括号不会破坏您的代码。这里也一样。

以上是关于如何从类变量数组中访问类成员?的主要内容,如果未能解决你的问题,请参考以下文章

在 Javascript 中访问事件处理程序中的类成员变量

c++ - 如何使用`this`访问类数组中的成员变量

C++从类的向量指针访问类的成员

ES6 代理类,访问私有属性(无法从类未声明的对象中读取私有成员#hidden)

当有多个派生类时,如何使用基类指针访问派生类的函数成员?

C ++从类外部设置指向结构中函数成员的指针