Когда использовать DIRECTORY_SEPARATOR в PHP-коде?
Посмотрите на код PHP:
require_once dirname(__FILE__).DIRECTORY_SEPARATOR . './../../../wp-config.php';
require_once dirname(__FILE__).DIRECTORY_SEPARATOR.'inc/options.php';
Вышеприведенный код из плагина из Wordpress.
Я не понимаю, почему половина из них использует DIRECTORY_SEPARATOR, но другая половина использует "/"?
Ответы
Ответ 1
Потому что в разных ОС существует другой разделитель каталогов. В Windows это \
в Linux это /
. DIRECTORY_SEPARATOR
является постоянным с этим разделителем каталога ОС. Используйте его каждый раз в пути.
В вашем фрагменте кода мы четко видим код плохой практики. Если framework/cms широко используются, это не означает, что он использует код наилучшей практики.
Ответ 2
Не используйте свои собственные разделители папок. Всегда используйте DIRECTORY_SEPARATOR, потому что:
- В некоторых особых случаях вам действительно нужен правильный разделитель путей
- ОС может справиться с этим правильно, но многие сторонние приложения не могут и могут потерпеть неудачу!
- Некоторые операционные системы не используют/или\как разделители, а что-то другое
Не забывайте: используйте константу только в удаленной системе - не используйте ее для URI или чего-либо еще, что вы хотите отправить клиенту (за исключением того, что вам это действительно нужно, например "удаленный браузер" ).