3

这两个代码片段有什么区别。第一个带有\ ,第二个带有\\

第一:

<?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',
    // ...
));

它们是不同的还是它们的工作方式相同?

4

1 回答 1

5

反斜杠在双引号字符串中具有特殊含义:它用于转义各种字符(例如\nand \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";
于 2012-08-14T00:11:41.970 回答