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

纠结 php use

  •  
  •   whatisnew · 2016-04-10 19:38:05 +08:00 · 2291 次点击
    这是一个创建于 3150 天前的主题,其中的信息可能已经有所发展或是发生改变。

    可以这样用:

    use vendor\Path\Class;
    // 然后方法里用:
    (new Class())->method()
    

    也可以这样用:

    // 不用 use, 直接在方法里写:
    (new vendor\Path\Class())->method()
    

    其中:

    // new 可以这样,带括号
    (new vendor\Path\Class())->method()
    // 也可以这样,不带括号:
    (new vendor\Path\Class)->method()
    

    操。。。我蹦溃了,到底要咋样???

    10 条回复    2016-04-11 00:25:53 +08:00
    sjtlqy
        1
    sjtlqy  
       2016-04-10 19:41:54 +08:00
    use 还是建议放在头部,函数里面用 use , tmd 挖坑
    magicdawn
        2
    magicdawn  
       2016-04-10 19:43:18 +08:00
    话说最好的语言不是有 psr 规范么,里面有规定 use
    Lucups
        3
    Lucups  
       2016-04-10 19:43:47 +08:00
    楼主纠结癌晚期,鉴定完毕。
    feiyuanqiu
        4
    feiyuanqiu  
       2016-04-10 19:48:34 +08:00 via iPhone
    没搞懂有什么问题, namespace 就相当于为类名加了个前缀, use 让你可以偷懒少打一串字
    至于 new 的时候的括号问题,选择一种自己喜欢的 code style 并坚持用就好了,结果又没有什么差别
    lianyue
        5
    lianyue  
       2016-04-10 20:24:13 +08:00 via iPhone
    你还不如在加个
    (new \vendor\Path\Class())->method()
    raincious
        6
    raincious  
       2016-04-10 20:31:09 +08:00
    建议楼主找个 IDE 比如 PHP Storm ,瞬间解除纠结模式(因为会提示你不要使用类全名)。
    orvice
        7
    orvice  
       2016-04-10 21:42:34 +08:00
    写头部吧
    xiaonianji
        8
    xiaonianji  
       2016-04-10 23:57:20 +08:00
    greatonce
        9
    greatonce  
       2016-04-11 00:25:15 +08:00
    (new vendor\Path\Class())->method()
    1. 这样写 Class()一般是构造方法需要参数的时候用于在里面传参数的, 而 new 在括号里面表明这是一个实例,所以可以调用 method ,如果是构造方法,是不会返回实例的。

    (new vendor\Path\Class)->method()
    2. 这种写法可以创建一个 Class 的实例,然后调用 method ,同样 new 是在括号里面,所以 new 完后是一个实例,这样的实例无法传参给构造方法。


    其实这两种没有什么太难理解的,一个是 Class() 另一个是 Class 都是在()括号里面 new ,然后得到一个实例化,多练习就可以了。
    linxl
        10
    linxl  
       2016-04-11 00:25:53 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5421 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 05:49 · PVG 13:49 · LAX 21:49 · JFK 00:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.