我试图弄清楚命名空间如何在PHP中运行,但并不是真的很幸运
希望有人能告诉我这里我做错了什么:)
require_once 'Vatcode.php';
$Vatcode = new \resource\Vatcode();
namespace resource;
require_once Ini::get('path/class').'/Resource.php';
class Vatcode extends Resource {
public function __construct(){
echo 'works!';
}
}
namespace resource;
class Resource {
}
Fatal error: Class 'resource\Ini' not found in Vatcode.php
答案 0 :(得分:3)
这只是命名空间的问题。
您的班级Vatcode在名称资源中。如果在VatCode声明文件中使用nameofclas::...
或new nameofclass()
,它将尝试在名称空间ressource中获取该类。
如果您想在文档中使用Ini类,您有两个解决方案:
首先提供完整的合格名称:
require \namespace\of\ini\Ini::get('path/class').'/Resource.php';
在使用get方法之前使用“use”keyworld:
use \namespace\of\ini\Ini;
require_once Ini::get('path/class').'/Resource.php';
在任何情况下,如果Ini处于“无命名空间”(全局命名空间是准确的单词),您只需使用我给您的解决方案,但只能使用\Ini
代替\namespace\of\ini\Ini