Php 如何在具有相同命名空间的另一个类中使用一个类?

Php 如何在具有相同命名空间的另一个类中使用一个类?,php,class,namespaces,autoload,spl,Php,Class,Namespaces,Autoload,Spl,我在我的项目中使用了spl_autoload,但当我尝试以下代码时,会出现以下错误: 致命错误:在中找不到类“Router\Route” //路由器文件 <?php namespace Router; class Router{ function foo(){ new Route(); } ?> //路由文件 <?php namespace Router; class Route{} ?> 有什么帮助吗?我对名称空间有点陌生。您可以使用另一个名称空间中的类,但

我在我的项目中使用了spl_autoload,但当我尝试以下代码时,会出现以下错误:

致命错误:在中找不到类“Router\Route”

//路由器文件

<?php
namespace Router;
class Router{
function foo(){
new Route();
}
?>

//路由文件

<?php
namespace Router;
class Route{}
?>


有什么帮助吗?我对名称空间有点陌生。

您可以使用另一个名称空间中的类,但不能有两个同名的名称空间(这就违背了这一点)


不确定是否可以多次声明同一命名空间。如果要使用名称空间。说“use namespcace_name”。你能给我们看一下你的spl_autoload_register函数吗?我正在使用默认的自动加载函数“spl_autoload_register('spl_autoload')”。这两个类都在同一个名称空间中。所以在我的目录结构中不存在一种反射这些名称空间的方法?我在“Router”目录中有Router和Route,所以我的spl自动加载将在这个名称空间中搜索它们。有没有办法做到这一点?
// In one file.
namespace Router;
class Router{
  function foo(){
    use Route as r;
    new r\Route();
  }
}

// In another file.
namespace Route;
class Route{}