1

目標

同じクラスの 2 つのメソッドを呼び出します。

問題

次のエラーが表示されindex.phpます:

Notice: 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();
    }

[...]

}

また、アプリケーションは常に最初のメッセージのみを表示します (この場合、サーシャ グレイに関する恐竜の意見)。

誰かが私に問題を解決する方法を教えてくれますか?

デバッグ スポットライト

[...]
    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()返すことによって発生します。明らかにオブジェクトではない (したがってプロパティを持たない) ため、PHP は E_NOTICE を発生させます。nullnull

ストアド プロシージャが失敗したのか、それとも出力を適切に取得していないのかfetchRowAsObject()を調べる必要があります。null

于 2013-10-17T15:14:24.897 に答える