php Пространства имен -- когда в начале должен быть слэш а когда нет

Когда мы говорим о пространствах имен, следует понимать следующее:

  1. В инструкции namespace имя пространства никогда не начинается со слеша -- то есть он в ней не используется.
  2. В инструкции use слэш в начале имени не влияет на на определение пространства (оно вседа начинает отсчитываться как бы от "корня" вне зависимости от наличия или отсутствия слеша):
    // две идентичные инструкции импорта пространства имен
    use \classOneNamespace  as rel;
    use classOneNamespace as abs;
  3. Слэш в начале имени класса влияет на положение дел:
    -- так как его наличие говорит о том, что отсчет надо производить от корня пространства имен, а отсутствие, о том, что следует дополнить имя класса именем пространства (которое было указано в namespace):
    <?php
    namespace test\namespaces;
    
    include 'classOne.php';
    include 'classTwo.php';
    include 'rootSpace.php';
    
    
    $a = new \classOneNamespace\One(); // использует  класс  \classOneNamespace\One
    $b = new classOneNamespace\One(); // использует  класс  test\namespaces\classOneNamespace\One
    $a = new \MyRootClass(); // использует  класс  MyRootClass (из корневого пространства)

Key Words for FKN + antitotal forum (CS VSU):