Разница между: $ _SERVER ['SCRIPT_NAME'] и $ _SERVER ['PHP_SELF']

В чем разница между:

$_SERVER['SCRIPT_NAME']

а также

$_SERVER['PHP_SELF']

Спасибо.

Ответ 1

Они должны содержать ту же информацию. Однако исторически и технически говоря, есть разница между ними.

SCRIPT_NAME определяется в спецификации CGI 1.1 и, следовательно, является стандартом. Это означает, что он должен быть доступен независимо от того, какой язык скриптинга вы используете.

PHP_SELF реализуется непосредственно PHP, и пока вы программируете на PHP, он будет там.

Ответ 2

В большинстве случаев это то же самое, но $_SERVER['SCRIPT_NAME'] менее подменяется, чем $_SERVER['PHP_SELF'], поэтому вы должны использовать SCRIPT_NAME, если вы хотите повторно использовать эти данные где-то на своем выходе.

Проверьте эту статью на различные полученные результаты.