可以这样用:
use vendor\Path\Class;
// 然后方法里用:
(new Class())->method()
也可以这样用:
// 不用 use, 直接在方法里写:
(new vendor\Path\Class())->method()
其中:
// new 可以这样,带括号
(new vendor\Path\Class())->method()
// 也可以这样,不带括号:
(new vendor\Path\Class)->method()
操。。。我蹦溃了,到底要咋样???
1
sjtlqy 2016-04-10 19:41:54 +08:00
use 还是建议放在头部,函数里面用 use , tmd 挖坑
|
2
magicdawn 2016-04-10 19:43:18 +08:00
话说最好的语言不是有 psr 规范么,里面有规定 use
|
3
Lucups 2016-04-10 19:43:47 +08:00
楼主纠结癌晚期,鉴定完毕。
|
4
feiyuanqiu 2016-04-10 19:48:34 +08:00 via iPhone
没搞懂有什么问题, namespace 就相当于为类名加了个前缀, use 让你可以偷懒少打一串字
至于 new 的时候的括号问题,选择一种自己喜欢的 code style 并坚持用就好了,结果又没有什么差别 |
5
lianyue 2016-04-10 20:24:13 +08:00 via iPhone
你还不如在加个
(new \vendor\Path\Class())->method() |
6
raincious 2016-04-10 20:31:09 +08:00
建议楼主找个 IDE 比如 PHP Storm ,瞬间解除纠结模式(因为会提示你不要使用类全名)。
|
7
orvice 2016-04-10 21:42:34 +08:00
写头部吧
|
8
xiaonianji 2016-04-10 23:57:20 +08:00
|
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 ,然后得到一个实例化,多练习就可以了。 |
10
linxl 2016-04-11 00:25:53 +08:00
|