Является ли "реальный путь" избыточным в $AbsolutePath = реальный путь (РЕЖ? Всегда ли DIR канонический абсолютный путь?


Имеет ли смысл делать что-то вроде

 $dir = realpath(dirname(__FILE__));
 // or for php 5.3+:
 $dir = realpath(__DIR__)

Или магические константы, такие как DIR и ФАЙЛ всегда возвращает абсолютный путь, поэтому реальный путь является избыточным?

Author: Tshepang, 2012-02-23

1 answers

Тебе не нужно realpath().

Документация по __FILE__:

Полный путь и имя файла. Если используется внутри включения, возвращается имя включенного файла. Начиная с PHP 4.0.2, __FILE__ всегда содержит абсолютный путь с разрешенными символическими ссылками, тогда как в более старых версиях при некоторых обстоятельствах он содержал относительный путь.

Таким образом, __FILE__ возвращает абсолютный путь => realpath() ненужный

И если вы используете __DIR__:

Каталог файла. Если используется внутри включения, возвращается каталог включенного файла. Это эквивалентно имени dirname(__FILE__). У этого имени каталога нет конечной косой черты, если только это не корневой каталог. (Добавлено в PHP 5.3.0.)

__DIR__ также возвращает абсолютный путь, потому что dirname() не отсекает абсолютную часть пути __FILE__ => realpath() ненужный

 8
Author: ComFreek, 2012-02-23 15:53:30