明明创建了一个Class,在另一个php文件中引用却提示class not found!

查看:1589
本文介绍了明明创建了一个Class,在另一个php文件中引用却提示class not found!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

错误提示:

Fatal error: Uncaught Error: Class 'frameworkdbMysqli' not found in C:Users11500DesktopdemoProjecttestTest.php:7 Stack trace: #0 {main} thrown in C:Users11500DesktopdemoProjecttestTest.php on line 7

项目目录:

Class文件:

另一个php文件:

解决方案

这里有一个误解,Mysqli.php里面的类名恰好也是 Mysqli,于是在Test.php中这段代码:

use framework\db\Mysqli; // 等同于 use framework\db\Mysqli as Mysqli

就被误解成了引入Mysqli.php文件。文档说use使用场景:所有支持命名空间的PHP版本支持三种别名或导入方式:为类名称使用别名、为接口使用别名或为命名空间名称使用别名。PHP 5.6开始允许导入函数或常量或者为它们设置别名。楼主的场景是为类名称使用别名,如果将Mysqli.php中类Mysqli名称改为Mysqli11,那么上面的代码应该改为:

use framework\db\Mysqli11; // 等同于 use framework\db\Mysqli11 as Mysqli11

最后是类的名称,和Mysqli.php文件没有任何关系;
所以当要使用Mysqli类时就需要包含类的文件

require '../framework/db/Mysqli.php';

而这里的use只是为类起别名(虽然有导入功能但是是函数或常量,且对php版本有要求)。

这篇关于明明创建了一个Class,在另一个php文件中引用却提示class not found!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆