Синтаксис — Что скобки, такие как выражение {variable} (variable | array), означают в php?

Я не мог гуглить этот. Вопрос;

public function processAPI() {
if (method_exists($this, $this->endpoint)) {
return $this->_response($this->{$this->endpoint}($this->args));
}
return $this->_response("No Endpoint: $this->endpoint", 404);
}

Рассматривать $endpoint переменная и $args это массив класса. Мы хотим передать переменную $this->{$this->endpoint}($this->args) в _response() метод. Что значит {$this->endpoint}($this->args) значит в синтаксисе php?

Ссылка полного определения кода: http://coreymaynard.com/blog/creating-a-restful-api-with-php/

0

Решение

$this->_response($this->{$this->endpoint}($this->args));

Разделяй и властвуй

$this->_response()

Означает вызов метода _response () текущего объекта с аргументом

$this->{$this->endpoint}($this->args)

Фигурные скобки объясняются здесь: http://php.net/manual/en/language.types.string.php

Любая скалярная переменная, элемент массива или свойство объекта со строкой
представление может быть включено через этот синтаксис. Просто напиши
выражение так же, как это выглядит за пределами строки, и
затем заверните его в {и}. Поскольку {не может быть экранирован, этот синтаксис будет
распознаваться только тогда, когда $ следует сразу за {. Используйте {\ $ для
получить буквальный {$.

Поэтому {$ this-> endpoint} вычисляется как строка, которая ранее была задана как свойство конечной точки текущего объекта.

$this->endpointproperty($this->args)

В текущем объекте должно быть свойство конечной точки метода, которое принимает один аргумент. Этот аргумент также является свойством этого объекта:

$this->args
2

Другие решения

Других решений пока нет …