That's the expected behavior, you have to declare the namespace at the top of the file to "extend" it.
If you include a global namespaced file, it will operate on the global namespace.
Espace de noms global
(PHP 5 >= 5.3.0)
Sans aucune définition d'espace de noms, toutes les classes et les fonctions sont placées dans l'espace de noms global : comme en PHP avant que les espaces de noms aient été introduits. En préfixant un nom avec un anti-slash \, on peut demander l'utilisation de l'espace de noms global, même dans un contexte d'espace de noms spécifique.
Exemple #1 Spécification d'espace de noms global
<?php
namespace A\B\C;
/* Cette fonction est A\B\C\fopen */
function fopen() {
/* ... */
$f = \fopen(...); // appel à fopen global
return $f;
}
?>
xmarcos at gmail dot com
22-May-2012 04:08
routinet
29-Aug-2011 08:22
Included files will default to the global namespace.
<?php
//test.php
namespace test {
include 'test1.inc';
echo '-',__NAMESPACE__,'-<br />';
}
?>
<?php
//test1.inc
echo '-',__NAMESPACE__,'-<br />';
?>
Results of test.php:
--
-test-
