PHP: статическое наследование подкласса – дети совместно используют статические переменные? ⇐ Php
PHP: статическое наследование подкласса – дети совместно используют статические переменные?
Как вы можете видеть ниже, у меня есть суперкласс (Article) и два подкласса. Я хочу, чтобы каждый из подклассов имел статический массив, в котором будут храниться все его объекты.
абстрактный класс Статья { общественная статическая $articles = array(); // Переменная для хранения всех объектов каждого подкласса. публичная функция add_Object_To_Array() { array_push(self::$articles, $this); } } отчет класса расширяет статью{} класс Интервью расширяет статью {} -Создание двух объектов отчета и добавление их в их массив:
$tmp = новый отчет(); $tmp->add_Object_To_Array(); $tmp = новый отчет(); $tmp->add_Object_To_Array(); -Создание двух объектов Interview и добавление их в их массив:
$tmp = новое интервью(); $tmp->add_Object_To_Array(); $tmp = новое интервью(); $tmp->add_Object_To_Array(); print_r(Отчет::$articles); print_r(Интервью::$articles); -Приведенный выше скрипт выдает два массива:
Массив ( [0] => Объект отчета() [1] => Объект отчета() [2] => Объект интервью() [3] => Объект интервью() ) Множество ( [0] => Объект отчета() [1] => Объект отчета() [2] => Объект интервью() [3] => Объект интервью() ) На мой взгляд, это выглядит очень похоже, но первый должен содержать только отчеты, а второй только интервью.
1. Кажется, что массив только один, почему массив только один?
2. У меня есть статический контейнер объектов того же класса. Это плохой код? (Есть предложения?)
Я новичок в PHP, но имею опыт работы с Java.
Как вы можете видеть ниже, у меня есть суперкласс (Article) и два подкласса. Я хочу, чтобы каждый из подклассов имел статический массив, в котором будут храниться все его объекты.
абстрактный класс Статья { общественная статическая $articles = array(); // Переменная для хранения всех объектов каждого подкласса. публичная функция add_Object_To_Array() { array_push(self::$articles, $this); } } отчет класса расширяет статью{} класс Интервью расширяет статью {} -Создание двух объектов отчета и добавление их в их массив:
$tmp = новый отчет(); $tmp->add_Object_To_Array(); $tmp = новый отчет(); $tmp->add_Object_To_Array(); -Создание двух объектов Interview и добавление их в их массив:
$tmp = новое интервью(); $tmp->add_Object_To_Array(); $tmp = новое интервью(); $tmp->add_Object_To_Array(); print_r(Отчет::$articles); print_r(Интервью::$articles); -Приведенный выше скрипт выдает два массива:
Массив ( [0] => Объект отчета() [1] => Объект отчета() [2] => Объект интервью() [3] => Объект интервью() ) Множество ( [0] => Объект отчета() [1] => Объект отчета() [2] => Объект интервью() [3] => Объект интервью() ) На мой взгляд, это выглядит очень похоже, но первый должен содержать только отчеты, а второй только интервью.
1. Кажется, что массив только один, почему массив только один?
2. У меня есть статический контейнер объектов того же класса. Это плохой код? (Есть предложения?)
Я новичок в PHP, но имею опыт работы с Java.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение