2

私はこのようなものを見てきました:

echo ($hello->somethingA->somethingB);

これは何を意味するのでしょうか?

私は私の質問をより明確にしようとします:

$domain->something;($domain OBJECT の何か PROPERTY にアクセスしている場合。正確な?

$DOMAIN OBJECT の some PROPERTY に run() METHOD にアクセスするよう$domain->something->run();に伝えます。正確?

では、次のように何を伝えていますecho ($hello->somethingA->somethingB);か。一部のプロパティにアクセスしていますか? これは理にかなっていますか?

前もってありがとう、MEM

4

3 に答える 3

4

はい、プロパティのプロパティにアクセスしています。どうやら、$hello は $somethingA という名前のプロパティを持つオブジェクトです。そのプロパティは、$somethingB という名前のプロパティを持つオブジェクトです。$somethingB は、明らかに文字列またはエコーアウトできるその他のタイプです。

于 2010-06-28T15:39:07.570 に答える
2

スコット・サンダースに+1してください。これを説明する例を次に示します。

class Hello 
{
  /**
   * @var SomethingA
   */
  public $somethingA;
}

class SomethingA
{
  /**
   * @var, don't know what type
   */
  public $somethingB;
}

$hello = new Hello();
$hello->somethingA = new SomethingA();
$hello->somethingA->somethingB = new stdClass();

var_dump($hello);
于 2010-06-28T15:44:36.687 に答える
0

これには、他の回答では調査されていない別の側面があります。メソッドではなく、プロパティにアクセスしている他の回答。しかし、PHP5 のオブジェクトはメソッドを連鎖させることができます。

これの代わりに:

$obj = new Object();
$obj->setId('1');
$obj->setName('name');
$obj->setAge('24');

あなたはこれを行うことができます:

$obj = new Object();
$obj->setId('1')->setName('name')->setAge('24');

それぞれの方法で、戻る$thisとあなたはゴールデンです。詳細とインスピレーションについては、次の記事を参照してください。

http://www.talkphp.com/advanced-php-programming/1163-php5-method-chaining.html

于 2010-06-28T18:24:54.683 に答える