在 class 中需要使用到别的 class 的 function ?
我现在遇到一个问题是
假设现在有一个类
class A {
public function a() {
}
}
class B {
public function b() {
}
}
假设我在 b() 中需要使用到 A的 a()
这通常会是用什么方式做到呢?我看网上似乎有几种方式,不晓得哪个是好的
再来如果类得顺序会不会影响到使用?
如果反过来呢? a() 需要用 b() 时?
我現在的做法是在外面先 new 一個
在用 global 帶到 function 裡面用
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果 B:A 类存在上下级关系就直接用
extend
进行继承
。如果 A 类会在多个地方用到,可以抽出来做成
Trait
,在需要使用时use
。如果以上两个条件都不满足。
构造方法
中实例化 A ,赋值给 B 的属性,然后调用。构造方法
,在 B 的构造方法中将传进来的 A 实例赋值给属性。先加载你要用的类,include或者composer。
$obj = new A();
$obj->a();
反之同理。
最好的方式是用命名空间导入,防止类名重复。
自动载入->use->new namespace/A()
现在一般都用依赖注入,用容器进行类管理,反射来进行注入。可以参考下symfony。好处可以百度一下,很多。不过在设计的时候需要注意环形调用。