为了账号安全,请及时绑定邮箱和手机立即绑定

在 PHP 中无法访问继承的函数

在 PHP 中无法访问继承的函数

PHP
holdtom 2021-06-11 18:35:15
我尝试说明有关 PHP 的文章并使用以下结构构建:文章-- 儿童文章我现在想访问 ChildArticle 类中从 Article 类继承的函数。这是我的文章类:<?phpnamespace 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;}这是我的 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 类不完全像参数一样接管函数?你能给我一个提示我如何解决这个问题或者我可以在哪里阅读它?
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

问题在于 PDO 构造对象的方式:它创建类 ( ChildArticle) 的一个实例,然后将所有列设置为其上的属性。由于$ordernumberis private,这会在每个类中创建一个单独的属性,即Article::$ordernumberChildArticle::$ordernumber是两个完全独立的属性。中的方法Article尝试访问Article::$ordernumber.

使属性至少为protected,或更改实例化类的方式。

如果您没有充分理由使用单独的属性和 getter,您不妨考虑制作属性public并摆脱 getter 方法。


查看完整回答
反对 回复 2021-06-13
  • 1 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信