调用同一个类的两个方法

时间:2013-10-17 14:41:13

标签: php

目标

调用同一类的两个方法。

问题

我在 index.php

上收到此错误
  

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

发生了什么

这是我的 index.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();
    }

[...]

}

应用程序总是只显示第一条消息(在这种情况下,恐龙对Sasha Grey的看法)。

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

调试聚光灯

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

返回NULL

2 个答案:

答案 0 :(得分:1)

use \Animals\Dinosaur as Dinosaur; 

$dinosaur = new Dinosaur(); 

答案 1 :(得分:0)

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

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