我的文件夹中有 3 个文件:
index.php
<?php
include ('MyProject.php');
$controller = new MyProject\MyProject();
$controller::execute();
?>
MyProject.php
<?php
namespace MyProject;
class MyProject{
public static function execute(){
include ('database.php');
$pdo = database::connect();
}
}
?>
数据库.php
<?php
class database{
public static function connect(){
return 'connect';
}
}
?>
为什么当我在 myproject.php
中包含 database.php
时,php 显示以下错误:
Fatal error: Class MyProject/database not found in ...
就我而言,我不想在database.php
中添加namespace
,为什么会发生这种情况以及如何解决这个问题?
最佳答案
包含的文件不继承命名空间。所以你的数据库对象与全局命名空间相关,即\
。要在另一个命名空间内调用它,请使用 use
语句或在类名之前添加全局命名空间 \
:
\database::connect();
或者
namespace MyProject;
use \database;
class MyProject{
public static function execute(){
include ('database.php');
$pdo = database::connect();
}
}
更多:http://php.net/manual/en/language.namespaces.importing.php
关于php - 未找到包含内部 namespace ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40089771/