Термины «PHP_SELF» и «SCRIPT_NAME» относятся к двум разным переменным в PHP, которые предоставляют информацию о выполняющемся в данный момент скрипте. Вот разница между ними:
-
PHP_SELF:
- Переменная
$_SERVER['PHP_SELF']— это суперглобальная переменная, содержащая имя файла выполняющегося в данный момент скрипта. Это часть массива$_SERVER, который содержит различные переменные сервера и среды. - Он возвращает путь и имя файла PHP-скрипта, который выполняется, относительно корня документа. Например, если скрипт расположен по адресу « http://example.com/myscript.php »,
$_SERVER['PHP_SELF']будет содержать «/myscript.php». - Его можно использовать для ссылки на текущую страницу в HTML-формах или для создания самоссылающихся URL-адресов.
Пример:
<?php echo $_SERVER['PHP_SELF']; ?> - Переменная
-
SCRIPT_NAME:
- Переменная
$_SERVER['SCRIPT_NAME']— это еще одна суперглобальная переменная, содержащая путь и имя файла выполняющегося в данный момент скрипта. Он похож наPHP_SELF, но всегда возвращает имя скрипта с косой чертой в начале. - В отличие от
PHP_SELF,SCRIPT_NAMEне предоставляет дополнительную информацию об URL-адресе запроса, который мог быть переписан или изменен с использованием методов перезаписи URL-адресов. - Он обычно используется для создания самоссылающихся URL-адресов или для включения других скриптов относительно текущего местоположения скрипта.
Пример:
<?php echo $_SERVER['SCRIPT_NAME']; ?> - Переменная
Иными словами, PHP_SELFвключает путь и имя файла текущего скрипта, а SCRIPT_NAMEвключает только имя файла с косой чертой в начале.