在同一个命名空间中直接调用类和动态调用类有什么区别?

问题描述 投票:0回答:1

当我在参数中调用类名时,出现错误“未捕获错误:未找到类“AdminController””; 但是直接打电话就一切正常了! 我的类位于同一文件夹和同一命名空间“namespace Base;”中

Array
(
    [0] => D:\Web\www\My\includes\AdminController.php
    [1] => D:\Web\www\My\includes\AdminModel.php
    [2] => D:\Web\www\My\includes\AdminView.php
    [3] => D:\Web\www\My\includes\Base.php
    [4] => D:\Web\www\My\includes\Router.php
    [5] => D:\Web\www\My\includes\SiteController.php
    [6] => D:\Web\www\My\includes\SiteModel.php
    [7] => D:\Web\www\My\includes\SiteView.php
)

还有 AdminController.php :

namespace Base;
    class AdminController{function index(){
    }
}

错误:

namespace Base;
class Router
{
    function loadClass($class){
        require_once "$class.php";
        $class="AdminController";
        $obj = new $class();  <== This make Error
        $obj = new AdminController();  <== This is has no error
    }
}

谢谢朋友们对我的帮助。

namespaces
1个回答
0
投票

这可能是因为你没有看到绝对的方式

通常类只查看它包含的文件夹或子文件夹,我们需要使用 os 类的方法来达到绝对方式 例如:

absulute_way= os.path.abspath("/home/slainst/Downloads/zero-to-mastery-ml-master/data/car-sales.csv")

car_sales = pd.read_csv(absolute_way)

© www.soinside.com 2019 - 2024. All rights reserved.