实例
<?php /** * Created by PhpStorm. * User: 清雨 * Date: 2018/5/10 * Time: 8:22 */ class config { private static $instance=null; private $setting=[]; private function __construct() { } private function __clone() { } public static function getInstance(){ if (self::$instance == null) { self::$instance=new self(); } return self::$instance; } public function set($index,$value){ $this->setting[$index]=$value; } public function get($index){ return $this->setting[$index]; } } //$obj1,$obj2 同一个对象 $obj1=config::getInstance(); $obj2=config::getInstance(); var_dump($obj1,$obj2); $obj1->set('pass','root'); echo $obj1->get('pass');
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<?php /** * Created by PhpStorm. * User: 清雨 * Date: 2018/5/10 * Time: 8:25 * 工厂模式 */ class Factory { public static function create($type,$price){ switch ($type){ case 'lenovo': return new Lenovo($price); break; case 'xiaomi': return new Xiaomi($price); break; } } } class Lenovo { private $price; public function __construct($price) { $this->price=$price; } public function price(){ return $this->price; } } class Xiaomi { private $price; public function __construct($price) { $this->price=$price; } public function price(){ return $this->price; } } $lenovo=Factory::create('lenovo',5000); echo '联想:'.$lenovo->price(); echo '<hr>'; $xiaomi=Factory::create('xiaomi',3000); echo '小米:'.$xiaomi->price();
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<?php /** * Created by PhpStorm. * User: 清雨 * Date: 2018/5/10 * Time: 8:29 * 注册数 */ class Demo1{} class Demo2{} class Demo3{} class Registry { public static $objs=[]; public static function set($index,$obj){ self::$objs[$index]=$obj; } public static function get($index){ return self::$objs[$index]; } public static function del($index){ unset(self::$objs[$index]); } } //类实现注册到注册树 Registry::set('demo1',new Demo1()); Registry::set('demo2',new Demo2()); Registry::set('demo3',new Demo3()); var_dump(Registry::$objs); echo '<hr>'; echo '<pre>'; print_r(Registry::$objs); echo '<hr>'; var_dump(Registry::get('demo1')); //del echo '<hr>'; Registry::del('demo1'); var_dump(Registry::get('demo1'));
运行实例 »
点击 "运行实例" 按钮查看在线实例