-1

私はこれをしたいです。

$ppl->tech->ceo->apple();

どうすればそれを機能させることができますか?

4

2 に答える 2

5

例えば:

class ppl {
  public $tech;

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

class tech {
  public $ceo;

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

class ceo {
  public function __construct(){

  }

  public function apple(){
    echo 'Hello.. I\'m apple.';
  }
}
于 2012-10-12T06:44:51.713 に答える
2

デイジーチェーンは、オブジェクトへのポインタを返すことで実現できます。これは、次のようにメソッドを接続するためによく使用されます。

$db = new db();
$myquery = $db->Select('mytable')->Where('a > 1')->Execute();

デイジーチェーンは、プロパティを新しいクラスに接続することではありません。

例:

class db 
{
  public function Select( $table )
  {
    // do stuff
    return $this;
  }

  public function Where( $Criterium )
  {
    // do stuff
    return $this;
  }

  public function Execute()
  {
    // do real work, return a result
  }
}
于 2012-10-12T07:27:00.617 に答える