V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Nicolay
V2EX  ›  PHP

关于命名空间的问题,请教大家。

  •  
  •   Nicolay · 2019-06-06 11:07:36 +08:00 · 3137 次点击
    这是一个创建于 1996 天前的主题,其中的信息可能已经有所发展或是发生改变。
    require_once('./service/Email.class.php');
    $ob = \Service\Email::getInstance();
    Email 类在 Service 命名空间下,为什么写成 $ob = Email::getInstance();会运行失败,不是已经把 email 类引入当前页面了么,为什么还要显式的写上命名空间。
    5 条回复    2019-06-09 13:41:09 +08:00
    Nicolay
        1
    Nicolay  
    OP
       2019-06-06 11:23:22 +08:00
    是在一个没有命名空间的 php 文件上书写如上的代码的。
    ben1024
        2
    ben1024  
       2019-06-06 11:27:56 +08:00
    因为没有命名空间的 php 文件上书写,Email::getInstance 找不到对应域。
    所有要从根路径查询,
    如果不想这样使用先可以 use Service\Email 声明作用域;类内进行使用。
    curiousjude
        3
    curiousjude  
       2019-06-06 11:31:42 +08:00
    建议还是要好好去理解一下命名空间是要解决什么问题。

    你给的代码,如果我再同时引入一个命名空间为 \Xxx\Email 的类,你不指定命名空间,那到底是要用哪一个?
    littleylv
        4
    littleylv  
       2019-06-06 11:39:21 +08:00
    建议先弄懂命名空间
    weirdo
        5
    weirdo  
       2019-06-09 13:41:09 +08:00
    命名空间是命名空间
    和 include/require 是两码事
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1015 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:52 · PVG 06:52 · LAX 14:52 · JFK 17:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.