1

次のような文字列プロパティをチェーン参照したいと思います。

echo($object1->object2->stringProperty);

しかし、それはこのエラーをもたらします:

キャッチ可能な致命的なエラー: クラス [オブジェクト 2 のタイプ] のオブジェクトを文字列に変換できませんでした

そこのどこかに型キャストを強制することで、これを機能させることはできますか? 中間オブジェクトに中間変数を使用することは機能しますが、残念な問題が追加されます。

class foo {
    public $bar;
}

class bar {
    public $title;
}

// Initialize the example.
$myBar = new bar();
$myFoo = new foo();
$myFoo->bar = $myBar;
$myBar->title = "fubar";

// Using an intermediate object works.
$temp = $myFoo->bar;
echo("$temp->title<br />");

// Using a direct reference raises a fatal error.
echo("$myFoo->bar->title<br />");
4

1 に答える 1

5

引用符を削除します。

echo $myFoo->bar->title . "<br />";

または中かっこで囲みます (複雑な構文とも呼ばれます)。

echo "{$myFoo->bar->title}<br />";
于 2013-04-23T21:21:18.863 に答える