私はこれをしたいです。
$ppl->tech->ceo->apple();
どうすればそれを機能させることができますか?
例えば:
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.';
}
}
デイジーチェーンは、オブジェクトへのポインタを返すことで実現できます。これは、次のようにメソッドを接続するためによく使用されます。
$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
}
}