Как интерпретируется макрос PHP? - PullRequest
2 голосов
/ 02 июля 2011

Для C / C ++, я думаю, Препроцессор выполняет обработку макроса до того, как компилятор скомпилирует программу, и поэтому имя макроса должно быть буквальным или абсолютным, переменная не может быть объявлена ​​как имя макроса.PHP, мы можем объявить так: DEFINE ($ name, $ value);Что означает, интерпретатор сначала интерпретирует переменную, а затем определяется макрос, то есть как обработка макроса во время выполнения.

Что на самом деле вызывает сомнение, действительно ли это обработка макроса?Если нет, то какова цель введения такого ключевого слова, как «определить»;иметь значения, которые нельзя изменить?

Или, если есть макропроцессор, кто-нибудь может объяснить, как он может работать?

Ответы [ 4 ]

5 голосов
/ 02 июля 2011

Для полноты, равно константе, определенной во время компиляции:

const MY_CONSTANT = 'something';

В отличие от определения констант с помощью define (), константы, определенные с помощью ключевого слова const, должны быть объявлены в области верхнего уровня, поскольку они определены во время компиляции. Это означает, что они не могут быть объявлены внутри функций, циклов или операторов if.

Из руководства по PHP .

Это для текущей версии PHP, 5.3.

4 голосов
/ 02 июля 2011

Define() объявляет константу.В PHP вы не можете объявить макрос как в C и обычно в этом нет необходимости.

Для получения дополнительной информации попробуйте отличный php сайт

1 голос
/ 02 июля 2011

http://php.net/manual/en/function.define.php

Определяет именованную константу во время выполнения.

1 голос
/ 02 июля 2011

PHP - интерпретируемый язык - мы не можем говорить о компиляции в случае PHP.DEFINE используется для определения констант - PI например

...