Ответ 1
Вот некоторые объяснения, которые я схватил об этой ситуации:
require_once 'ns_class2.php';
//
namespace ns; // Declaration of the namespace named "ns"
class class2 {} // Declaration of the class "ns/class2"
// In the namespace "ns", "class2" is an alias of "ns\class2"
//
require_once 'ns_ns1_ns2_class2.php';
//
namespace ns\ns1\ns2; // Declaration of the namespace named "ns\ns1\ns2"
class class2 {} // Declaration of the class "ns\ns1\ns2\class2"
// In the namespace "ns\ns1\ns2", "class2" is an alias of "ns\ns1\ns2\class2"
//
require_once 'ns_ns1_ns2_class1.php';
//
namespace ns\ns1\ns2; // Declaration of the namespace named "ns\ns1\ns2"
// In the namespace "ns\ns1\ns2", "class2" is an alias of "ns\ns1\ns2\class2"
use ns\class2; // Creation of the alias "class2" which point to "ns\class2" but class2 is already an alias of ns\ns1\ns2\class2 => ERROR
Итак, вы должны попробовать с get_included_files(), чтобы видеть на вашем сервере и на станции, что такое разные, потому что порядок их загрузки важен.
Эти объяснения связаны с этот приятный пост, который был прокомментирован dmitry
Надеюсь, это поможет