Я думаю, что это может быть глупый вопрос, но я совершенно смущен, нужно ли мне скрывать обратную косую черту в PHP.
echo 'Application\Models\User'; prints Application\Models\User echo 'Application\\Models\\User'; same output echo 'Application\Model\'User'; gives Application\Model'User
Итак, это escape-символ, не нужно ли мне его избегать ( \
), если я хочу обратиться к Application\Models\User
?
В одинарных кавычках признаны только escape-последовательности \\
и \'
; любое другое вхождение \
интерпретируется как простой символ.
Так как \M
и \U
являются допустимыми escape-последовательностями, они интерпретируются так, как они есть.
Это необязательно, чтобы избежать обратной косой черты, единственным исключением является то, что это до одной кавычки (потому что обратная косая черта избегает одиночной кавычки).
См. Руководство .
Поскольку ваш последний пример содержит цитату ( '
), вам нужно избежать таких строк с addslashes
функции addslashes
или просто добавить косую черту прежде, чем она будет выглядеть так:
'Application\Model\\'User'
Вы найдете полное объяснение здесь: http://nl.php.net/manual/en/language.types.string.php
Я думаю, что это зависит от контекста, но лучше избегать обратных косых черт, если использовать его в пути к файлам.
Еще одна хорошая идея – назначить разделитель каталогов константе, которую я видел в разных приложениях раньше, и использовать ее так:
<?php define('DIRECTORY_SEPARATOR', '\\'); echo 'Application'.DIRECTORY_SEPARATOR . 'Models' . DIRECTORY_SEPARATOR . 'User'; ?>
Если вы хотите экономить место и печатать, другие используют DS
для постоянного имени.
<?php define('DS', '\\'); echo 'Application'.DS.'Models'.DS.'User'; ?>
Это переносит ваше приложение переносимым, если вы перейдете из среды Windows в среду * nix, так как вы можете просто изменить константу разделителя каталога на косую черту.