PHP程序维护,PHP维护类状态

我看起来你可以从使用Singleton模式中受益 – 它是为一个在整个请求中只有一个实例的对象而设计的.基本上,您创建一个私有构造函数和一个静态方法来检索唯一的实例.这是一个单例的例子,它将完成你描述的内容.

class Messages

{

private static $_instance;

private $_messages = array();

private function __construct() {

// Initialize

}

static public function instance() {

if (! self::$_instance) {

self::$_instance = new self();

}

return self::$_instance;

}

public function add_message( $msg ) {

$this->_messages[] = $message;

}

public function get_messages() {

return $this->_messages;

}

private function __destruct() {

// Tear-down

}

}

$my_messages = Messages::instance();

$my_messages->add_message( 'How now, brown cow?' );

// ...

$your_messages = Messages::instance();

$msgs = $your_messages->get_messages();

echo $your_messages[0]; // Prints, "How now, brown cow?"

由于构造函数是私有的,因此只能在对象本身的方法中创建Messages对象.由于您有一个静态方法instance(),您可以从那里创建一个新的Messages实例.但是,如果实例已存在,则您希望返回该实例.

基本上,单身人士是其自身实例的守门人,并且它固执地拒绝让自身存在多个实例.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值