PHP命名空间在子目录中不起作用

时间:2016-04-07 08:18:51

标签: php namespaces

我正在使用php命名空间和自动加载。结果在每页的顶部我写下这些行:

require_once('autoload.php'); // this file is in the root directory
use Lib\Blogs;
use Lib\Clients;

当我在网站的根目录时,上面的所有内容都很好。但是当我在子目录中时,我无法访问其中任何一个:

我将上面的行更改为:

require_once('../autoload.php'); // this file is in the root directory
use Lib\Blogs;
use Lib\Clients;

这是错误:

Fatal error: Class 'Lib\Blogs' not found in C:\website\ajax\ajaxBlog.php on line 10

在第10行,我有这个代码调用静态方法:

if (!empty(Blogs::findByEmail($email))) { ... }

1 个答案:

答案 0 :(得分:0)

因此,您必须使用带别名的类或在调用时写入完整路径。

use Lib\Blogs as Blogs;
...
if (!empty(Blogs::findByEmail($email))) { ... }

if (!empty(Lib\Blogs::findByEmail($email))) { ... }