这两个代码段之间有什么区别。第一个是\
,第二个是\\
。
第一个:
<?php
// File: app/autoload.php
$loader->registerNamespaces(array(
'Knp\\Component' => __DIR__.'/../vendor/knp-components/src',
'Knp\\Bundle' => __DIR__.'/../vendor/bundles',
// ...
));
第二个:
<?php
// File: app/autoload.php
$loader->registerNamespaces(array(
'Knp\Component' => __DIR__.'/../vendor/knp-components/src',
'Knp\Bundle' => __DIR__.'/../vendor/bundles',
// ...
));
它们是不同的还是它们的工作方式相同?
答案 0 :(得分:5)
反斜杠在双引号字符串中具有特殊含义:它用于转义various characters(例如\n
和\r
)。
在单引号字符串中,反斜杠用于转义文字引号(例如echo 'I\'m';
)和反斜杠本身。
最好在命名空间字符串中使用双反斜杠,以防止因字符转义而导致的任何可能的错误。除此之外,它们是一样的:
// outputs: Foo\Bar\Baz
echo 'Foo\Bar\Baz';
// outputs: Foo\Bar\Baz
echo 'Foo\\Bar\\Baz';
// The autoloader would not be able to find the correct file
// outputs: Foo
// ot hat
echo "Foo\not\that";