正如您在下面看到的,我有一个超类(文章)和两个子类。我希望每个子类都有一个静态数组来保存它的所有对象。
abstract class Article
{
public static $articles = array(); // Variable for storing all the objects of each sub-class.
public function add_Object_To_Array()
{
array_push(self::$articles, $this);
}
}
class Report extends Article{}
class Interview extends Article{}
- 制作两个报告对象并将它们添加到它们的数组中:
$tmp = new Report();
$tmp->add_Object_To_Array();
$tmp = new Report();
$tmp->add_Object_To_Array();
- 制作两个 Interview 对象并将它们添加到它们的数组中:
$tmp = new Interview();
$tmp->add_Object_To_Array();
$tmp = new Interview();
$tmp->add_Object_To_Array();
print_r(Report::$articles);
print_r(Interview::$articles);
- 上面的脚本吐出两个数组:
Array
(
[0] => Report Object()
[1] => Report Object()
[2] => Interview Object()
[3] => Interview Object()
)
Array
(
[0] => Report Object()
[1] => Report Object()
[2] => Interview Object()
[3] => Interview Object()
)
如果你问我,这看起来很相似,但第一个应该只包含报告,第二个应该只包含采访。
1、好像只有一个数组,为什么只有一个数组?
2. 我在同一个类中有一个对象的静态容器,这是不好的编码吗?(有什么建议么?)
我对php很陌生,但有java背景。