Как php выполняет функцию, присвоенную переменной?

У меня была такая же проблема. Я использовал платформу Eclipse, и в моем представлении шоу отсутствовал сервер. Чтобы это исправить, выполните следующие действия:

  • help> установите новое программное обеспечение

  • при работе с: выберите: «Сайт обновления Indigo - http: //download.eclipse.org/releases/indigo/ "после выбора все доступное программное обеспечение будет отображаться в разделе под фильтром типа text

  • Развернуть« Web, XML и Java EE Development »и выберите« Расширения адаптеров JST Server »

  • , затем нажмите« Далее »и завершите. Сервер должен отображаться в режиме просмотра

6
задан saint 22 May 2009 в 13:35
поделиться

3 ответа

Нет. PHP является обязательным, поэтому правая часть выражений присваивания вычисляется , а результат сохраняется «в» левой части (в простом и почти повсеместном случае переменная, названная в левой части) .

$a = $b;  // Find the value of $b, and copy it into the value of $a
$a = 5 + 2; // Evaulate 5 + 2 to get 7, and store this in $a
$a = funcName(); // Evaluate funcName, which is equivalent to executing the code and obtaining the return value. Copy this value into $a

Это становится немного сложнее, если вы назначаете по ссылке ($ a = & $ b), но пока нам не стоит об этом беспокоиться.

12
ответ дан 8 December 2019 в 13:48
поделиться

В PHP нет таких закрытий .

dirname ( FILE )

эта функция возвращает строку.

$ anotherVariable = $ file;

дает $ anotherVariable такое же строковое значение.

поэтому я считаю, что ответ на ваш вопрос - «нет», он не выполняется каждый раз.

2
ответ дан 8 December 2019 в 13:48
поделиться

No in any case.

PHP's functions are not identifiers which point to instance of class Function as you can see in Java, ActionScript, JavaScript etc... That's why you can't store a link to function itself to a variable. That's why any time you call the function it is in common the same as you include() a script to execute. Sure there are differences, but in context of this question including with include() and calling a function are almost identical.

Don't be confused with this case

function myFunc() {return 'hello world';}
$func = 'myFunc';
$a = $func();
echo $a; // hello world

Read about this case here This behavior is special for PHP. Not sure about other languages - maybe somwhere there's smth. similar to this, but I've never met it.

1
ответ дан 8 December 2019 в 13:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: