PHP新手求助:RedBeanPHP命名空间下出现Undefined type 'Fromtify\Database\R'错误的解决方法
解决命名空间中RedBeanPHP的
R类未定义错误 我来帮你搞定这个问题!你遇到的Undefined type 'Fromtify\Database\R'错误,根源很简单:RedBeanPHP的核心类R是在全局命名空间下的,而你的代码包裹在Fromtify\Database这个自定义命名空间里——当你直接写R::setup()时,PHP会默认在当前命名空间(也就是Fromtify\Database)里查找R类,自然找不到啦。
这里有两种简单的解决方法,你可以选一种适合你的:
方法1:给R加上全局命名空间前缀
直接在所有调用R的地方前面加上反斜杠\,告诉PHP去全局命名空间找这个类:
namespace Fromtify\Database { require_once('../libs/rb-mysql.php'); // 注意:类名这里我帮你修正了拼写错误(Contoller → Controller) class Controller { public function Connect() { \R::setup(/* 你的数据库设置 */); if (!\R::testConnection()) { echo 'Cant connect to database'; exit; } } } }
方法2:用use语句引入全局R类
如果不想每次都写\R,可以在命名空间的顶部用use语句把全局的R类引入进来,之后就能直接用R了:
namespace Fromtify\Database { // 引入全局命名空间的R类 use \R; require_once('../libs/rb-mysql.php'); class Controller { public function Connect() { R::setup(/* 你的数据库设置 */); if (!R::testConnection()) { echo 'Cant connect to database'; exit; } } } }
另外提个小细节:你的类名写成了Contoller,少了一个字母r,正确的拼写应该是Controller,虽然这不是当前报错的原因,但修正后代码更规范哦~
内容的提问来源于stack exchange,提问作者Vladislav Darashkevichius
相关产品推荐
相关产品推荐

