2016-01-27 1 views
2

Supposons que j'ai un espace de noms de niveau supérieur \Outer et j'ai un autre sous-espace de noms \Outer\Inner et j'ai un autre espace de noms de niveau supérieur \InnerPHP: en utilisant la classe sous-espace de noms dans un espace de noms

et dans une classe \Outer J'utilise Inner comme ce

use Inner; 

puis qui intérieur sera utilisé?

\Outer\Inner // (sub-namespace) 

ou

\Inner // (top-level namespace) 

Je suis confus parce que php a dit que la \ était facultative pour les espaces de noms de haut niveau?

+0

'' utiliser Inner' et utilisation \ Inner' les deux sont différents. Le premier est sous-namespace de l'espace de nom externe, mais plus tard est un espace de noms de premier niveau – Haridarshan

+0

Possible duplicate de [Comment implémenter l'espace de noms imbriqué en PHP?] (Http://stackoverflow.com/questions/2230025/how-to-implement- nested-namespace-in-php) –

Répondre

0

Lorsque vous avez l'espace de noms \Outer dans une classe, alors use Inner utilisera l'espace de noms de niveau supérieur Inner. Si vous souhaitez utiliser sousespacedenoms vous Sould faire \Outher\Inner

Comme indiqué en php using namespaces

Disons que votre premier fichier était:

<?php 
namespace Outer\Inner; 

<?php 
namespace Outer; 

/* Qualified name */ 
Inner\foo(); // resolves to function Outer\Inner\foo