调用同一类的两个方法


Call two methods of the same class

目标

调用同一类的两个方法。

问题所在

我在index.php上收到此错误:

注意:尝试在第 3 行获取 [...] 中的非对象属性

发生了什么事情

这是我的索引.php

<?php
    $dinosaur = new 'Animals'Dinosaur;
    echo $dinosaur->talk()->opinionAboutSashaGrey;
    echo $dinosaur->talk()->opinionAboutLife;

这是方法的实现:

<?php
namespace Animals;
class Dinosaur extends Animal
{
[...]
    public function talk()
    {
        $this->database->query("CALL getDinosaurDialogs();");
        return $this->database->fetchRowAsObject();
    }
[...]
}

并且应用程序始终只显示第一条消息(在这种情况下,恐龙对萨沙格雷的看法)。

有人可以告诉我如何解决问题的想法?

调试聚焦

[...]
    var_dump($dinosaur->talk());
[...]

还我NULL.

use 'Animals'Dinosaur as Dinosaur; 
$dinosaur = new Dinosaur(); 

该问题是由返回$this->database->fetchRowAsObject() null引起的,然后您尝试访问其属性。 null显然不是一个对象(因此没有属性),所以PHP提出了一个E_NOTICE。

您需要找出fetchRowAsObject()返回null的原因 - 是存储过程失败,还是没有正确检索其输出?