本文介绍了PHP 命名空间在子目录中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am using php namespaces and autoload. as result on top of each page I write these lines:

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

当我在网站的根目录中时,以上几行一切都很好.但是当我在子目录中时,我无法访问它们中的任何一个:

Every thing is fine with above lines when I am in root of website. But I can't access to any of them when I am in sub-directories:

我将以上几行更改为:

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 行,我有这个调用静态方法的代码:

and in line 10, I have this code which call static method:

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

推荐答案

所以调用时必须使用带别名的类或写完整路径.

So you have to use classes with aliases or write full path when you call.

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

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

这篇关于PHP 命名空间在子目录中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-19 05:13