0

PHP OOP でチェーン インターフェイスを作成することに興味があります。このサンプル コードを php.net Web サイトから変更しましたが、さらに進めたいと思います。この種のインターフェイスからオブジェクトまたは配列を返すにはどうすればよいですか?

// Declare a simple class
class TestClass
{
    public $foo;

    public function __construct($foo)
    {
        $this->foo = $foo;
    }

    public function __toString()
    {
        return $this->foo;
    }
}

$input = (object)array("title" => "page 1");
$class = new TestClass($input);
echo $class;

エラー、

キャッチ可能な致命的なエラー: Method TestClass::__toString() must return a string value in C:\wamp\www\test\2013\php\fluent_interface.php 行 2

その代わりに別の魔法のメソッドを使用する必要があり__toStringますか?

編集: これを結果として返すことはできますか?

stdClass Object ( [title] => page 1 )
4

2 に答える 2

1

print_rまたはvar_export関数のいずれかを探していると思います。

public function __toString()
{
    return var_export($this->foo, true);
}

var_export は、値の型も返すため (さらに、有効な PHP コード形式で) 優れています。この__toString()メソッドは流暢なインターフェースと共通点がないことに注意してください。それはただの違いです。

于 2013-08-22T13:13:56.357 に答える