независимость от языка — необходимо ли использовать константу разделителя каталогов?

Я использую PHP, но я Угадай этот вопрос может быть независимым от языка.

В PHP константа определяется PHP и называется DIRECTORY_SEPARATOR, Я видел это в Joomla

define('DS', DIRECTORY_SEPARATOR);

Я подумал, что это хорошая идея, поэтому я включил ее в некоторые из своих сайтов. Теперь я спрашиваю себя, почему. У меня есть только опыт работы с Windows и OS X, и, насколько я знаю, Microsoft, Linux и Apple используют косую черту в качестве разделителя каталогов.

Является ли использование этой константы ненужным?

37

Решение

Mac OS Classic, например, использует «:». Увидеть Википедия для деталей. Также это считается хорошим стилем, избегающиммагические числаили подобные конструкции.

18

Другие решения

Что касается PHP, он может вам не понадобиться при построении пути, но это важно для всего, что вы получаете от ОС.

От http://alanhogan.com/tips/php/directory-separator-not-necessary:

Пытаясь написать кроссплатформенный переносимый код PHP, я использовал константу PHP DIRECTORY_SEPARATOR для записи строк пути, например, "..".DIRECTORY_SEPARATOR."foo"потому что «правильный» способ сделать это в Windows будет "..\foo" в то время как на всем остальном (Linux, UNIX, Mac OS X) это будет "../foo",

Ну как христианин на php.net ребята на форумах веб-дизайна подтвердили, что в этом нет необходимости. Пока вы используете косую черту «/», все будет в порядке. Windows не возражает против этого, и это лучше для * nix операционных систем.

(Обратите внимание, что DIRECTORY_SEPARATOR все еще полезно для таких вещей, как explodeпуть, который система дал вам. Спасибо Shadowfiend за указание на это.)

19

Windows фактически использует обратную косую черту в качестве разделителя каталогов, хотя в некоторых средах с версиями для Windows прямая и обратная косые черты автоматически переводятся (на ум приходит Python).

6
По вопросам рекламы [email protected]