1

目标

调用同一类的两个方法。

问题

我收到此错误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 Gray的看法)。

有人可以给我一个想法,我该如何解决这个问题?

调试聚光灯

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

还给我NULL

4

2 回答 2

1
use \Animals\Dinosaur as Dinosaur; 

$dinosaur = new Dinosaur(); 
于 2013-10-17T14:59:32.430 回答
0

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

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

于 2013-10-17T15:14:24.897 回答