PHP Порядок операций - PullRequest
0 голосов
/ 05 марта 2010

Я хотел знать, как PHP выполнит это. Порядок операций

addslashes(strip_tags($record['value']));

Сначала называются аддлаши или strip_tags?

Другими словами, он выполняется изнутри или снаружи?

Ответы [ 4 ]

10 голосов
/ 05 марта 2010

изнутри.

Вещи, передаваемые в функцию в PHP, называются «выражениями». Когда вы передаете выражение в качестве параметра, на самом деле вы передаете значение этого выражения. Для этого выражение оценивается перед его передачей.

Подробнее о выражениях из руководства php .

5 голосов
/ 05 марта 2010

strip_tags вызывается первым.

и это относится не только к PHP, но и к любому другому языку программирования (за исключением некоторого малоизвестного эзотерического языка, который может иметь некоторый уникальный порядок оценки).

PS: Вот некоторая документация: PEDMAS . Это то, что вдохновило этот порядок оценки и в языках программирования.

1 голос
/ 05 марта 2010

Если вы думаете об этом логически, что нужно PHP для выполнения функции? Переменная. Таким образом, strip_tags необходимо ввести $record['value'], прежде чем он сможет выполнить функцию и убрать из нее теги. Эта функция вернет значение.

Теперь addslahes тоже нужна переменная. Он не может выполняться в функции, ему нужна эта функция внутри, чтобы возвращать что-то для обработки. Таким образом, он использует это возвращаемое значение из strip_tags в качестве своей переменной и выполняет при этом.

0 голосов
/ 05 марта 2010

addslashes принимает один аргумент, в вашем случае это strip_tags($record['value']). addslashes нельзя вызвать, если аргумент не разрешен.

Поэтому strip_tags должен быть вызван первым. Это имеет место почти во всех популярных языках программирования. Интересно, как тебе удалось обойтись, прежде чем ты это узнал!

...