<?php /** * 单例模式定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 * final 防止类被继承重构 */ final class Single{ //静态存储单例对象 private static $instance; private function __construct(){ echo "实例化对象" . PHP_EOL; } /** * 返回单例对象 * @Author feiyu * @DateTime 2017-02-10 * @since [version] */ public static function getInterface(){ //判断静态属性是否为空或者是否为单例类型 if(empty(self::$instance) || !(self::$instance instanceof Single)){ self::$instance = new Single(); } return self::$instance; } /** * 对象工具方法 * @author feiyu * @dateTime 2017-02-10 */ public function test(){ echo "hello word"; } /** * 防止类被用于克隆 * @author feiyu * @dateTime 2017-02-10 */ private function __clone(){ trigger_error("禁止克隆该类",E_USER_WARNING); } } $obj = Single::getInterface(); $obj->test();