Переменная PHP с круглыми скобками? - PullRequest
2 голосов
/ 03 октября 2011

Я не понимаю этот код:

$outputFunction($dst, $resized, $quality);

Это не функция например, myfunction ()

Это не переменная например, $ variable = $ variable2

Что это?

Код работает в скрипте, который я скачал, я просто не могу понять, как этот кусок кода может работать ... возможно, я просто устал или что-то в этом роде.

Спасибо.

Ответы [ 5 ]

9 голосов
/ 03 октября 2011

$ outputFunction содержит имя функции.Таким образом, если $ outputFunction содержит значение "calculate", то вызывается calculate($dst, $resized, $quality).

2 голосов
/ 03 октября 2011

Чтобы добавить ответ sbrattla, вы также можете определить анонимные функции в PHP 5.3 (я думаю), поэтому

$var = function($a) { /* do something */ return $b; }
echo $var(123);
1 голос
/ 03 октября 2011

в php вы можете сделать что-то вроде

$outputFunction = 'myFunction';
$outputFunction(args);

, и он работает, вызывая функцию обычно

функции переменных

0 голосов
/ 03 октября 2011

Строка должна инициализироваться несколькими строками раньше. Вы можете рассматривать это как указатель на funcrion, который позволяет изменить исполняемый метод.

Php распознает ваш синтаксис и запустит функцию, названную в вашей строке (вычисляемую, если хотите)

0 голосов
/ 03 октября 2011

Это переменные функции .

$outputFunction вычисляется для получения имени функции, к которой будут применены операнды.

В руководстве по PHP есть целая страница, посвященная этой теме .

...