Php 如何在具有相同命名空间的另一个类中使用一个类?
我在我的项目中使用了spl_autoload,但当我尝试以下代码时,会出现以下错误: 致命错误:在中找不到类“Router\Route” //路由器文件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{} ?> 有什么帮助吗?我对名称空间有点陌生。您可以使用另一个名称空间中的类,但
<?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{}