Как получить доступ к членам класса из массива переменных класса?

Я хочу использовать функции отражения 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
Другие вопросы по тегам