Php 如何在第二类中使用第一类属性和方法?
我有两节课。让我们把它们叫做“A类”和“B类”。我想在“类B”中使用“类A”属性和方法。像这样Php 如何在第二类中使用第一类属性和方法?,php,object,scope,Php,Object,Scope,我有两节课。让我们把它们叫做“A类”和“B类”。我想在“类B”中使用“类A”属性和方法。像这样 $a = new Class_A; class Class_B { function __construct() { $a->foo = 2; $a->magic(); } } 当然,它不起作用。处理这一问题的最佳做法是什么 “全局”关键字 使“Class_A”的属性和方法保持静态 另一种方式 如果需要类class_A的
$a = new Class_A;
class Class_B {
function __construct() {
$a->foo = 2;
$a->magic();
}
}
当然,它不起作用。处理这一问题的最佳做法是什么
- “全局”关键字
- 使“Class_A”的属性和方法保持静态
- 另一种方式
如果需要类
class_A
的实例,请将其传递给类class_B
s构造函数:
class Class_B {
function __construct($a) {
$a->foo = 2;
$a->magic();
}
}
$a_instance = new Class_A();
$b = new Class_B($a_instance);
如果类class_A
不需要实例化以执行其任务,则将属性和方法定义为静态,并使用class_A::method()调用它们代码>
避免global
s。如果Class\u B
也是一个Class\u B
(例如香蕉是一种水果),那么继承可能会更好。如果需要ClassClass\u a
的实例,则将其传递给ClassClass\u B
的构造函数:
class Class_B {
function __construct($a) {
$a->foo = 2;
$a->magic();
}
}
$a_instance = new Class_A();
$b = new Class_B($a_instance);
如果类class_A
不需要实例化以执行其任务,则将属性和方法定义为静态,并使用class_A::method()调用它们代码>
避免global
s。如果Class_B
也是Class_B
(例如香蕉是一种水果),那么继承可能会更好。这一切都取决于您实际尝试完成的内容。每种方法都有其优缺点。可以使用静态成员、继承或将类A传递给类B作为参数。这取决于你需要做什么。我正在创建微型MVC框架Class_A'代表“视图”,Class_B'代表“控制器”。我使用静态成员来做这件事,但似乎几乎所有其他MVC框架都使用“依赖注入”。我想知道什么对我的情况更好。顺便说一句,很抱歉,这要看你到底想完成什么。每种方法都有其优缺点。可以使用静态成员、继承或将类A传递给类B作为参数。这取决于你需要做什么。我正在创建微型MVC框架Class_A'代表“视图”,Class_B'代表“控制器”。我使用静态成员来做这件事,但似乎几乎所有其他MVC框架都使用“依赖注入”。我想知道什么对我的情况更好。顺便说一句,很抱歉双重邮寄。我也很高兴见到你,戈登。我以前没有参加过非正式会议,所以我不确定会发生什么。。。但是,我希望向一些人介绍在PHP中使用“真正的”Excel文件的好处:)我首先期待的是乐趣和社交。会议的时间范围通常太小,无论如何都无法获得一个主题的概述。很高兴认识这些人:)戈登,我也很高兴认识你。我以前没有参加过非正式会议,所以我不确定会发生什么。。。但是,我希望向一些人介绍在PHP中使用“真正的”Excel文件的好处:)我首先期待的是乐趣和社交。会议的时间范围通常太小,无论如何都无法获得一个主题的概述。这是一次很好的会面:)