Дек 252011
 

Предопределенные, или «волшебные» константы

PHP предусматривает полезные «волшебные» константы для выборки текущего номера строки (__LINE__), пути файла (__FILE__), пути каталога (__DIR__), имени функции (__FUNCTION__), имени класса (__CLASS__), имени метода (__METHOD__) и пространства имен (__NAMESPACE__).

В этой статье мы не собираемся охватывать каждую из них, но я покажу вам некоторые случаи их использования.

Когда в дело включаются другие скрипты, хорошая идея – использование константы __FILE__ (или __DIR__ в версии PHP 5.3):

1.// этот код зависит от пути загруженного скрипт
2.// и может вызвать проблемы при использовании из других каталогов
3.require_once('config/database.php');
4.
5.// а этот код всегда относителен к пути текущего файла
6.// в независимости откуда он был включен
7.require_once(dirname(__FILE__) . '/config/database.php');

Использование __LINE__ облегчает отладку программы. Можно отследить номера строк:

01.// some code
02.// ...
03.my_debug("some debug message"__LINE__);
04./* prints
05.Line 4: some debug message
06.*/
07.
08.// some more code
09.// ...
10.my_debug("another debug message"__LINE__);
11./* prints
12.Line 11: another debug message
13.*/
14.
15.function my_debug($msg$line) {
16.echo "Line $line: $msg\n";
17.}