2015-08-16 2 views
0

Я пытаюсь понять примеры в PSR-0, но безрезультатно. Я знаю, что \ является разделителем каталогов (по крайней мере, в моей ОС Windows), и, по моему скромному мнению, он не может быть эквивалентен /. Я искал разницу между ними и не нашел результата.В чем разница между `/` и `` в php

+1

К счастью, это не вопрос мнения, так что ваше мнение ничего не меняет. Да, Windows использует обратную косую черту «\», где другие системы используют «/», и да PHP не нуждается в специальной обработке для этого большую часть времени при создании путей к файлам. Вы можете просто использовать обычную косую черту даже в Windows. – Elin

+0

На самом деле «\» и «/» служат для разных целей в PHP ... все зависит от того, что вы делаете. –

+0

Обратная косая черта в дорожках - это наследие от MS-DOS 2.0 (версия 1.0 вообще не имела каталогов). Он был выбран по сравнению с традиционными '/' передними косыми чертами, чтобы запутаться, откуда была получена идея. Однако стандартные разделители каталогов '/' также работали в DOS/Windows с тех пор. – mario

ответ

4

При работе под Linux или MacOS PHP разрешает только / в качестве разделителя каталогов.

При работе под Windows PHP принимает либо /, либо \ в качестве разделителя каталогов; он относится к ним точно так же.

Практически во всех случаях лучше всегда использовать /, потому что это позволит вашему коду работать на любой платформе. Если вы используете \ для разделителей каталогов, ваш код будет работать только в Windows.

Разница в Windows заключается в обеспечении совместимости с другим программным обеспечением, которое может содержать пути с разделителями \, но если вам это специально не нужно, лучше придерживаться /.

Кроме того, существует другое использование \ в PHP, которое может вас смутить (особенно, как вы упомянули PSR0). \ также является разделителем для PHP пространств имен.

Пространства имен: не такие же, Это делается для того, чтобы ваши кодовые модули легко находили и легко записывали автозагрузчик для них, поэтому рекомендуется структурировать проект в соответствии с PSR0, но он не является обязательным для языка PHP; пространства имен не совпадают с путями каталогов.

+1

Обратная косая черта также имеет особое значение внутри строк, например. newlines - '\ n', а в регулярных выражениях, например. '\ s' является символом пробела. Чтобы использовать пути с обратными косыми чертами в литеральных строках, вам нужно хорошее понимание того, как PHP интерпретирует строковые литералы. Использование косой черты сбрасывает вам головную боль. – alexis

+0

@alexis, я вижу большое спасибо –

2

\ используется для namespacing тогда / является Разделительный на окна файловой системы, например C:/Users/Sam/Documents

Что PSR загрузчики классов позволяют сделать это, чтобы найти и классы нагрузки из каталогов, используя предоставленную вами информацию в пространстве имен ,

Например, класс, называемый response.php может быть помещен в папке samayo/http в корневом каталоге ваших проектов и полный путь будет samayo/http/response.php теперь PSR позволяет использовать пространство имен samayo\http\reponse, чтобы загрузить файл, используя DIRECTORY_SEPARATOR путем изменения разделители каталогов и немного больше за сценой

+0

Благодарим вас за предоставленный пример сэром. –

1

\ используется как разделитель для пространств имен, а / используется как разделитель каталогов для файлов. Пример основан на системе unix.

Хотя \ используется в качестве разделителя каталогов на ваших окнах, используя /, также будет работать (например, для загрузки файлов). Но если вам нужен правильный разделитель каталогов на всех системах, вы всегда можете использовать постоянную систему DIRECTORY_SEPARATOR.

+0

спасибо за 'DIRECTORY_SEPARATOR' и за ответ. –

3

Термин «обратная косая черта» относится к числу наиболее часто используемых терминов при вычислении. Люди часто ссылаются на косые черты как обратную косую черту, особенно при обращении к URL-адресам.Веб-адреса (URL), такие как http://foo.bar/dash/, содержат косые черты, а не обратную косую черту. Разница между обратной косой черты и слэшем определен ниже:

Backslash: \

вперед Slash:/

Хороший способ запомнить разницу между обратной косой чертой и слэшем является то, что обратная косая черта наклоняется назад (\), а передняя косая черта наклоняется вперед (/).

В обратных косах обратной связи Windows используются для разделения каталогов в путях файлов (например: C: \ Program Files \ Common Files \ microsoft shared). На основе систем Unix для одной и той же цели используются косые черты (например:/System/Library/Screen Savers).

Прямые косые черты также можно назвать просто «косыми чертами», поскольку они гораздо чаще используются, чем обратные косые черты. (Сляки также используются в качестве символов разделения и вместо слова «или.»). Поэтому URL-адрес http://foo.bar/dash может быть вербализован, «foo dot bar slash dash». Если вы говорите «обратную косую черту» при совместном использовании URL-адреса, люди будут знать, что вы имеете в виду, но вы можете встретить как noob. Поэтому лучше всего привыкнуть к правильному термину.

+0

Да, хороший способ отличить их. спасибо за всю информацию. Я добавляю это в концепцию пространства имен, так как это меня путало +1 –

Смежные вопросы