2014-09-05
5.3以前也可实现,但代码较繁琐, 如下:
class MOrder extends SModel{
protected static $handle; //单例句柄
private function __construct(){
//something
}
/**
* 获取本类单例的方法,公开
*
* @return MOrder
*/
public static function instance() {
if(self::$handle){
return self::$handle;
}
$class = __CLASS__;
self::$handle = new $class();
return self::$handle;
}
//otherthing
}
5.3增加延迟静态绑定(这个词真别扭)
代码实现如下
class SModel {
/**
* 获取单例句柄,返回具体模型类的实例对象
*/
protected static function instance() {
if(static::$handle){
return static::$handle;
}
$class = get_called_class();
static::$handle = new $class();
return static::$handle;
}
//父类something
}
class MGoods extends SModel{
/**
* 获取本类单例的方法,公开
* @return MGoods
*/
public static function instance(){
return parent::instance();
}
protected static $handle; //单例句柄
protected function __construct(){
//something
}
//otherthing
}
通过修改,子类的实现代码减少一部分,转由父类实现
实话说,仍很麻烦,如果PHP自己实现singleton就好了.
PHP中的魔术方法 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep,
2014-09-05
PHP中的(++i)前缀自增 和 (i++)后缀自增
2014-09-05
php递归返回值的问题
2014-09-05
常用dos命令及语法
2014-09-27
最简单的asp登陆界面代码 asp登陆界面源代码详细介绍
2017-04-12
如何安装PHPstorm并配置方法教程 phpstorm安装后要进行哪些配置
2017-05-03
php 做权限管理
2014-09-05
nginx,php日志分割
2014-09-05
解决ThinkPHP在Nginx下无法使用pathin方式的问题
2014-09-05
c语言新手入门代码
2022-03-22
了不起的飞剑测试版下载v1.3.805 安卓版
角色扮演 250.2M
下载凹凸世界cbt版下载v1.2.44 安卓版
角色扮演 1.90G
下载高能手办团游戏果盘版下载v1.1.8 安卓版
角色扮演 433.0M
下载想不想修真1号玩家版手游下载v3.5.1 安卓最新版
角色扮演 208.0M
下载渠道手游万国觉醒下载v1.0.37.31 安卓版
策略塔防 681.7M
下载腾讯天涯明月刀手游下载v0.0.22 安卓正版
角色扮演 1.20G
下载造梦西游ol国际服下载v11.2.1 安卓版
其它手游 649.4M
下载天涯明月刀bilibili手游下载v1.1.3 安卓哔哩哔哩版
角色扮演 396.0M
下载英雄联盟激斗峡谷台服官方版下载v1.24.2 安卓版
下载
诸神皇冠taptap服下载v1.1.8.40991 安卓最新版
下载
小七版本王者传奇下载v1.0.19.2 安卓最新版
下载
万国觉醒4399游戏盒下载v1.0.37.32 安卓版
下载
斗诡测试服下载v1.4.0 安卓版
下载
高能手办团网易版手游下载v1.1.9 安卓版
下载
机甲大作战九游版下载v1.1 安卓版
下载
江南百景图杭州版下载v1.3.0 安卓最新版
下载