class Register{ // 设置数容器 protected static $objects = null; /** * 把对象挂载到树上 * @param $key * @param $value */ public static function set($key,$value){ self::$objects[$key] = $value; } /** * 从树上获取对象 没有的时候 new * @param $key * @return mixed */ public static function get($key){ if(!isset(self::$objects[$key])){ self::$objects[$key] = new $key; } return self::$objects[$key]; } /** * 注销 * @param $key */ public static function _unset($key){ unset(self::$objects[$key]); } }
class A { public function abc(){ return "abc"; } }
$abc = \Register::get("A")->abc(); //注册树get是不存在就new 挂载A var_dump($abc);