平静背后的哲学
Ikut

Selepas mengikuti, anda boleh menjejaki maklumat dinamiknya tepat pada masanya

Nota kursus
  • Kursus dalam bahagian yang berkaitan:Corak reka bentuk klasik PHP

    <?php //单例模式 class SIte{ //属性 public $sitename; //本类的静态实例 protected static $instance = null; //禁用构造器 private function __construct($sitename){ $this->sitename = $sitename; } //获取本类唯一的实例 public static function getInstance($sitename="php中文网"){ if(!self::$instance instanceof self){ self::$instance = new self($sitename); } return self::$instance; } }

    2018-06-250个赞

  • Kursus dalam bahagian yang berkaitan:Pengenalan kepada kontena kelas kontena

    <?php //单例模式 class SIte{ //属性 public $sitename; //本类的静态实例 protected static $instance = null; //禁用构造器 private function __construct($sitename){ $this->sitename = $sitename; } //获取本类唯一的实例 public static function getInstance($sitename="php中文网"){ if(!self::$instance instanceof self){ self::$instance = new self($sitename); } return self::$instance; } } //用工厂模式生成本类的单一实例 class Factory{ //创建指定类的实例了 public static function create(){ return Site::getInstance('www.php.cn'); } } //注册树 /* 注册:set() 对象挂在树上 获取:get() 获取对象 注销:_unset() 销毁对象 */ class Register{ //创建对象池:数组 protected static $object = []; //生成对象并上树 public static function set($alias,$object){ self::$object[$alias] = $object; } //从树上获取对象 public static function get($alias){ return self::$object[$alias]; } //把书上的对象吃掉 public static function _unset($alias){ unset(slef::$object[$alias]); } } //将Site类的实例 放至对象树 Register::set('site',Factory::create()); //从树上获取一个对象 $obj = Resgister::get('site'); echo $obj->sitename; /* trait实现了代码的复用 突破单继承限制 trait不是用于实例话 优先级问题: 当前类和父类中方法一样 trait类的优先级高于同名父类方法 */ trait Demo1{ public function test(){ return __METHOD__; } } trait Demo2{ public function test1(){ return __METHOD__; } } class Demo{ use Demo1,Demo2;//相当于将Demo1和Demo2中的方法引进来 public function test2(){ return __METHOD__; } public function test(){ return $this->test1(); } }

    2018-06-251个赞