会社のサイトに詳しく書いてあります。
<?php class Animal { protected $name; protected $koe; public function setName($name) { $this->name = $name; } public function getName(){ return $this->name; } public function setKoe($koe) { $this->koe = $koe; } public function getKoe(){ return $this->koe; } } class Friends extends Animal{ public function MyName() { return $this->name; } public function Naku() { return $this->koe; } } class Japaripark { private $friends; private static $instance; public function __construct() { $this->friends = array(); } public static function getInstance(){ static $instance; if(!isset($instance)){ $instance = new Japaripark(); } return $instance; } public function addFriend($friend) { $this->friends[] = $friend; } public function getFriend($name){ foreach($this->friends as $friend){ if($friend->getName() == $name){ return $friend; } } return null; } public function resisterFriendDB() { foreach($this->friends as $friend){ //Database resister //登録要素 //$friend->getName(); //例:かばん //$friend->getKoe(); //例:食べないで下さい } return null; } } //Japariparkインスタンスを生成するよ! $japaripark = Japaripark::getInstance(); $friend = new Friends(); $friend->setName("かばん"); $friend->setKoe("食べないでください"); $japaripark->addFriend($friend); $friend = new Friends(); $friend->setName("サーバル"); $friend->setKoe("すっごーい"); $japaripark->addFriend($friend); //DB登録 $japaripark->resisterFriendDB(); echo <<< EOM フレンズ:{$japaripark->getFriend("かばん")->MyName()}<br/> 鳴き声:{$japaripark->getFriend("かばん")->Naku()} # メソッドチェーン <hr/> フレンズ:{$japaripark->getFriend("サーバル")->MyName()}<br/> 鳴き声:{$japaripark->getFriend("サーバル")->Naku()} # メソッドチェーン <hr/> EOM; var_dump($japaripark); exit();