Когда использовать 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 или чего-либо еще, что вы хотите отправить клиенту (за исключением того, что вам это действительно нужно, например "удаленный браузер" ).