本文介绍了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 命名空间在子目录中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!