PHP

PHP メソッドチェーン シングルトン

PHP メソッドチェーン シングルトン

 

会社のサイトに詳しく書いてあります。

<?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();

Amazonおすすめ

iPad 9世代 2021年最新作

iPad 9世代出たから買い替え。安いぞ!🐱 初めてならiPad。Kindleを外で見るならiPad mini。ほとんどの人には通常のiPadをおすすめします><

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)