Я пытаюсь проиллюстрировать статьи о PHP и построил с этой структурой:
Article
- ChildArticle
Теперь я хочу получить доступ к функции в классе ChildArticleкоторый унаследован от класса Article.
Вот мой класс Article:
<?php
namespace App\Article;
use PDO;
class Articles
{
private $id;
private $name;
private $cid;
private $ordernumber;
private $description;
private $descriptionLong;
private $childArticles;
/**
* @return mixed
*/
public function getId()
{
return $this->id;
}
/**
* @return mixed
*/
public function getName()
{
return $this->name;
}
/**
* @return mixed
*/
public function getCid()
{
return $this->cid;
}
/**
* @return mixed
*/
public function getOrdernumber()
{
return $this->ordernumber;
}
/**
* @return mixed
*/
public function getDescription()
{
return $this->description;
}
/**
* @return mixed
*/
public function getDescriptionLong()
{
return $this->descriptionLong;
}
/**
* @return mixed
*/
public function getChildArticles()
{
return $this->childArticles;
}
function readChildArticles(PDO $pdo){
$stmt = $pdo->prepare(
"SELECT articleID as id, ordernumber FROM `s_articles_details` WHERE ordernumber LIKE :ordernumberWOD AND ordernumber NOT LIKE :ordernumber"
);
$stmt->execute([
'ordernumberWOD'=>$this->ordernumber.".%",
'ordernumber'=>$this->ordernumber
]);
$this->childArticles = $stmt->fetchAll(PDO::FETCH_CLASS,"App\\Article\\ChildArticle");
}
}
Вот мой класс ChildArticle:
class ChildArticle extends Articles
{
}
Теперь я хочу прочитатьпорядковые номера дочерних статей:
foreach ($article->getChildArticles() as $child){
echo "Child: {$child->getOrdernumber()}<br>";
}
Моя функция readChildArticles:
function readChildArticles(PDO $pdo){
$stmt = $pdo->prepare(
"SELECT articleID as id, ordernumber FROM `s_articles_details` WHERE ordernumber LIKE :ordernumberWOD AND ordernumber NOT LIKE :ordernumber"
);
$stmt->execute([
'ordernumberWOD'=>$this->ordernumber.".%",
'ordernumber'=>$this->ordernumber
]);
$this->childArticles = $stmt->fetchAll(PDO::FETCH_CLASS,"App\\Article\\ChildArticle");
}
Мой вывод будет таким:
Child:
Child:
and so on
, если я получу порядковый номер через $child-> ordernumber, это работает.
Почему мой класс ChildArticle не принимает функцию в точности так же, как параметры?
И вы можете дать мне подсказку, как я могу решить проблему илигде я могу прочитать об этом?
thx:)