[PHP] __FILE__ подводный камень

Как известно, предопределенная константа __FILE__ содержит полный путь и имя текущего файла. На первый взгляд все просто и понятно. Но одинаково ли «поведение» этой константы в разных ситуациях? Для меня стало небольшим откровением, что внутри eval __FILE__ содержит еще и указание, на то, что выполняется eval и строку, на которой находится вызов eval.

Возникает вопрос — а как же быть?
Раньше, рассматривая код wso, я задавался вопросом о смысле конструкции

define('SELF_PATH', __FILE__);

Я не мог понять, зачем дублировать константу. А дублирования то и нет. Мы просто сохраняем то значение, которое еще не «запорчено» eval. И внутри eval уже используем не __FILE__, а SELF_PATH.

, ,

Оставить комментарий

Top ↑ | Main page | Back