2012-08-13 1 views
3

두 코드 스 니펫의 차이점은 무엇입니까? 첫 번째 것은 \이고 두 번째 것은 \\입니다.symfony2 registerNamespaces에서 ''와 '\'의 차이점은 무엇입니까?

첫 번째 :

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

가 다를하거나 동일하게 작동합니까?

답변

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"; 
+0

마지막 예는 좋은 예입니다! – PMoubed

관련 문제