RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 710062
Accepted
fosh4455
fosh4455
Asked:2020-08-24 19:57:16 +0000 UTC2020-08-24 19:57:16 +0000 UTC 2020-08-24 19:57:16 +0000 UTC

为什么看不到具有命名空间的类?

  • 772

错误:致命错误:在第 17 行的 ... 中找不到类 'Model\PDO' 代码:

namespace Model;
class DB
{
    public function __construct() {
        $dsn = "mysql:host=$this->host;dbname=$this->db;charset=$this->charset";
        $opt = array(
            PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
        );

就在这条线的下方:

try {
    $this->DBconnect = new PDO($dsn, $this->user, $this->pass, $opt);
}

第 17 行是PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,

就是这样。我对命名空间的工作不多,我很笨,不知道如何解决它。试图\Model\把所有地方放在前面- 没有帮助。错误 100% 与命名空间有关。没有它们也有相同的代码 - 一切正常。

php
  • 1 1 个回答
  • 10 Views

1 个回答

  • Voted
  1. Best Answer
    rjhdby
    2020-08-24T20:13:15Z2020-08-24T20:13:15Z

    PDO是命名空间\(“根”命名空间)中的一个类,分别是它的完全限定名称\PDO。

    您在一开始就设置了命名空间

    namespace Model;
    

    因此,当您编写 时new PDO(...),您正在寻找一个new \Model\PDO(...)不存在的类。

    实际上,您需要使用完全限定的类名new \PDO(...);,或者在设置当前命名空间后插入use PDO;

    UPD

    那些。实际上,该构造namespace My\Space;意味着所有进一步的类都将被解释为命名空间中的类,\My\Space直到您用其他东西重新定义当前命名空间。

    那些。

    namespace A;
    class A{
        function __construct(){
            $b = new B();
            $c = new \C();
            $d = new D\D();
            $e = new \E\E();
        }
    }
    
    $a = new A();
    

    实际上,这些类将被解释为:

    $a = new \A\A();
    $b = new \A\B();
    $c = new \C();
    $d = new \A\D\D();
    $e = new \E\E();
    

    UPD2

    那些。简单来说,如果类名中的第一个字符\是 - 这是“绝对路径”,如果这个字符不存在 - 这是“相对”路径。并且构造use表示应在指定路径中搜索特定类。

    • 4

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    Python 3.6 - 安装 MySQL (Windows)

    • 1 个回答
  • Marko Smith

    C++ 编写程序“计算单个岛屿”。填充一个二维数组 12x12 0 和 1

    • 2 个回答
  • Marko Smith

    返回指针的函数

    • 1 个回答
  • Marko Smith

    我使用 django 管理面板添加图像,但它没有显示

    • 1 个回答
  • Marko Smith

    这些条目是什么意思,它们的完整等效项是什么样的

    • 2 个回答
  • Marko Smith

    浏览器仍然缓存文件数据

    • 1 个回答
  • Marko Smith

    在 Excel VBA 中激活工作表的问题

    • 3 个回答
  • Marko Smith

    为什么内置类型中包含复数而小数不包含?

    • 2 个回答
  • Marko Smith

    获得唯一途径

    • 3 个回答
  • Marko Smith

    告诉我一个像幻灯片一样创建滚动的库

    • 1 个回答
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Алексей Шиманский 如何以及通过什么方式来查找 Javascript 代码中的错误? 2020-08-03 00:21:37 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5