Глобальные и волшебные константы PHP

Достаточно часто пишу код, применяя такоие вот волшебные константы, в основном применяю их для отладки.

  • __LINE__ Текущий номер строки в файле.
  • __FILE__ Полный путь и имя текущего файла. Если используется внутри подключаемого файла, то возвращается имя данного файла. Начиная с версии PHP 4.0.2, __FILE__ всегда содержит абсолютный путь с разрешенными символическими ссылками, тогда как в старых версиях в некоторых обстоятельствах возвращался относительный путь.
  • __DIR__ Директория файла. Если используется внутри подключаемого файла, то возвращается директория этого файла. Это эквивалентно вызову dirname(__FILE__). Возвращаемое имя директории не оканчивается на слэш, за исключением корневой директории (добавлена в PHP 5.3.0.)
  • __FUNCTION__ Имя функции. (Добавлена в PHP 4.3.0.) Начиная с PHP 5 эта константа возвращает имя функции точно так, как оно было объявлено (с учетом регистра). В PHP 4 это значение всегда было в нижнем регистре.
  • __CLASS__ Имя класса. (Добавлена в PHP 4.3.0.) Начиная с PHP 5 эта константа возвращает имя класса точно так, как оно было объявлено (с учетом регистра). В PHP 4 это значение всегда было в нижнем регистре.
  • __METHOD__ Имя метода класса. (Добавлена в PHP 5.0.0) Имя метода возвращается так, как оно было объявлено (с учетом регистра).
  • __NAMESPACE__ Имя текущего пространства имен (с учетом регистра). Эта константа определяется во время компиляции (Добавлена в версии PHP 5.3.0).

Под катом некоторые глобальные константы и небольшие сниппеты.

Путь к файлу с http:

Абсолютныйпуть к файлу для PHP младше 5.3.0

Еще один вариант получения абсолютного пути:

Хотя следующая конструкция не демонстрирует значение переменной а является эксплуатацией функции, я думаю она будет достаточно полезна:

В результате выполнения этого кода мы получим следующее:
/www/htdocs/inc
lib.inc.php
php
lib.inc

Еще одна полезная конструкция, проверяющая исполняется ли скрипт самостоятельно или является подключенным к другому скрипту посредством include() или других функций включения:

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.