如何在第二类中使用第一类属性和方法?
我有两节课。我们称它们为“Class_A”和“Class_B”。我想在“B 类”中使用“Class_A”属性和方法。这样……
$a = new Class_A;
class Class_B {
function __construct() {
$a->foo = 2;
$a->magic();
}
}
当然不行。处理它的最佳做法是什么?
- “全球”关键字?
- 将“Class_A”的属性和方法设为静态?
- 另一种方式...?
I have two classes. Lets call them 'Class_A' and 'Class_B'. I want to use 'Class_A' properties and methods in 'Class B'. Like this...
$a = new Class_A;
class Class_B {
function __construct() {
$a->foo = 2;
$a->magic();
}
}
Of course, it do not work. What is the best practice to deal with it?
- 'global' keyword?
- Make properties and methods of 'Class_A' static?
- Another way...?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
依赖注入
Dependency injection
如果您需要类
Class_A
的实例,则将其传递给类Class_B
的构造函数:如果类
Class_A
不需要按顺序实例化要执行其任务,请将属性和方法定义为静态,并使用Class_A::method();
调用它们,避免
全局
。如果Class_B
是也是一个Class_B
(例如香蕉是一种水果),那么继承可能会更好。If you need an instance of class
Class_A
, then pass it to classClass_B
s constructor:If class
Class_A
does not need to be instantiated in order to perform its tasks, define properties and methods as static instead and call them withClass_A::method();
Avoid
global
s. IfClass_B
is also aClass_B
(e.g. a banana is a fruit), then you probably go better with inheritance.