Лучше бы создал тему с ошибкой , нежели этот вопрос....Добрый день.
Я хотел поинтересоваться тут можно создать тему чтобы разобрать ошибку ООП в php ?
У меня есть класс "ArticleList" в котором есть поле -массив в которое добавляется статьи с помощью метода add();Лучше бы создал тему с ошибкой , нежели этот вопрос....
class ArticleList{
public $alist;
public function add($article){
$this -> alist[] = $article;
}
public function view(){
foreach($this -> alist as $article){
$article -> view();
echo '<hr>';
}
}
public function delete($id){
foreach($this -> alist as $key => $article){
if($article == $id){
unset($this -> alist[$key]);
}
}
}
}
class Reverse extends ArticleList{
public function reverse(){
/*if($this -> alist != null){
echo 'There are data in the array <br>';
}else{
echo 'There are not existing data in the array<br>';
}*/
$this -> revlist = array_reverse($this -> alist);
foreach($this -> revlist as $article){
$article -> view();
}
}
Встречный вопрос - откуда класс узнает о том, что вы там делаете с объектом?У меня естьклассобъект класса "ArticleList" в котором есть поле -массив в которое добавляется статьи с помощью метода add();
Далее наследую от родительского класса, и пытаюсь вывести поле со значениями в массиве уже в наследнике.
При переборе массива в классе наследника , ничего не выводится.
Проверил унаследованное поле на пустоту, таки да, там пусто.
Вопрос, как унаследовать поле род. класса с текущими значениями в класс потомка?
$alist = new ArticleList;Судя по коду свойство "$this -> alist" должно быть доступным в наследнике.
И покажи как ты создаешь объект.
$alist = new ArticleList;
$rev = new Reverse;
Экземпляр классаdallas777, используй тег PHP, он в редакторе доступен: http://prntscr.com/5sor0j
Это не правильно! Тебе надо создавать только объект наследника.PHP:$alist = new ArticleList; $rev = new Reverse;
$alist
$rev
Попробуй читать автораHello,причем тут статические методы?
Он хочет добавлять в ArticleList и чтобы они появлялись в наследнике ReverseУ меня есть класс "ArticleList" в котором есть поле -массив в которое добавляется статьи с помощью метода add();
Далее наследую от родительского класса, и пытаюсь вывести поле со значениями в массиве уже в наследнике.
При переборе массива в классе наследника , ничего не выводится.
То есть нужно создать объект Revers - в этом объекте будут методы и свойства класса "ArticleList" потому что он расширяет его?Hello, описание класса из которого получаем объект в "$article" упущен, потому не важно, что там.
На данный момент, я обратил внимание, что он создает класс родитель и класс наследник отдельно, это не правильно, а я предпочитаю решать проблемы по мере их поступления. Далее я уже телепатически предполагаю, что данные он заносит в класс родитель и потом надеется получить эти данные из объекта класса "Reverse" который он создал отдельно и он ничего не знает об объекте класса "ArticleList" коду он заносил данные.