Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Магические, волшебные константы

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Предопределенные константы
LEONeso
Отправлено: 09 Марта, 2011 - 14:07:48
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




Здравствуйте, какие практические применения могут быть с этими магическими константами?

__LINE__ - Текущая строка в файле.
__FILE__ - Полный путь и имя текущего файла.


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
Мелкий Супермодератор
Отправлено: 09 Марта, 2011 - 14:13:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




__LINE__ - очень удобно для протоколирования ошибок. Номера строки и кое-какой дополнительной информации (например, аргументов и кода возврата функции) в большинстве случаев достаточно для анализа ошибки.
__FILE__ - собственно, там же удобен.


-----
PostgreSQL DBA
 
 Top
EuGen Администратор
Отправлено: 09 Марта, 2011 - 14:21:08
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Про первую уже сказали, по второй добавлю - часто скрипты создаются не для просмотра через веб, а для исполнения служебных целей (back-end) для приложения. Соответственно помещаются они в крон или иной планировщик задач. Чаще всего такие скрипты создают отчеты о своей работе (то есть логи в простейшем варианте). Если не позаботиться специально, то вызов такого скрипта из произвольного места может вызвать затруднения - а именно лог-файл будет сохранен в тот каталог, откуда был сделан вызов. Это относится и ко всему рабочему окружению для работы с файловой системой.
Однако конструкция

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

Думаю, подобных примеров привести можно много - зависит только от фантазии.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
OrmaJever Модератор
Отправлено: 09 Марта, 2011 - 14:21:22
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




__FILE__ очень часто используют так
и узнаёшь путь к текущему файлу.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Stierus Супермодератор
Отправлено: 09 Марта, 2011 - 16:41:42
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




__LINE__ использую только в логах
PHP:
скопировать код в буфер обмена
  1. include(dirname(__FILE__).'/someScript.php'); //классика жанра
 
My status
 Top
LEONeso
Отправлено: 09 Марта, 2011 - 18:22:55
Post Id



Посетитель


Покинул форум
Сообщений всего: 499
Дата рег-ции: Янв. 2010  
Откуда: Россия, Москва


Помог: 1 раз(а)




Stierus, допустим файл лежит в заурядной директории в глубине древа, образном 1/2/3/4/5/6/7/8 - выполняется скрипт ingod.php и требуется сделать инклайд ismaindoc.php зачем прописывать весь путь целиком, когда и без этого он будет искать в директории, в которой хранится ingod.php ?

Или на выходе получается, что-то иное?

тоже будет работать:


-----
Для некоторых лучший способ написать что-нибудь осмысленное - это сесть _опой на клавиатуру.
 
 Top
Stierus Супермодератор
Отправлено: 10 Марта, 2011 - 11:20:58
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Когда у вас инклуды прописаны в файлах, которые сами инклудятся - у вас без dirname(__FILE__) будут проблемы Улыбка
 
My status
 Top
JustUserR
Отправлено: 10 Марта, 2011 - 15:08:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




LEONeso пишет:
__FILE__ - Полный путь и имя текущего файла.
Использование предполагаемой константного объекта уровня определения исходного кода языка PHP, является единственным базовым средств для осуществления определения расположения ассоциированного исполняемого файлового объекта в операционной системе, поскольку все предполагаемые переменные окружения генерируются на основании базового инициализирующего процесса, и в частности могут осуществлять содержание произвольных информационных полей установленных в модуле CGI-интерфейса


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB