分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 软件开发

PHP设计模式------单例模式

发布时间:2023-09-06 01:33责任编辑:彭小芳关键词:PHP

单例模式的作用就是在整个应用程序的生命周期中,单例类的实例都只存在一个,同时这个类还必须提供一个访问该类的全局访问点。

首先创建一个单例类,可以直接使用这个单例类获得唯一的实例对象,也可以继承该类,使用子类实例化对象。

下面的代码使用子类进行实例对象创建

Singleton.php文件

<?phpnamespace test;class Singleton{ ???protected static $instance; ???private function __construct() ???{ ???} ???/* ???????static 的用法是后期静态绑定:根据具体的上下文环境,确定使用哪个类 ???*/ ???public static function getInstance() ???{ ???????/* ???????????$instance 如果为NULL,新建实例对象 ???????*/ ???????if (NULL === static::$instance) { ???????????echo ‘before‘ . PHP_EOL; ???????????static::$instance = new static(); ???????????echo ‘after‘ . PHP_EOL; ???????} ???????/* ???????????不为NULL时,则直接返回已有的实例 ???????*/ ???????return static::$instance; ???}}

SingletonTest.php子类文件

<?phpnamespace test;require_once(‘Singleton.php‘);class SingletonTest extends Singleton{ ???private $name; ???public function __construct() ???{ ???????echo ‘Create SingletonTest instance‘ . PHP_EOL; ???} ???public function setName($name) ???{ ???????$this->name = $name; ???} ???public function getName() ???{ ???????echo $this->name . PHP_EOL; ???}}/* ???SingletonTest instance*/$test_one = SingletonTest::getInstance();$test_one->setName(‘XiaoMing‘);$test_one->getName();/* ???$test_two 和 $test_one 获取的是同一个实例对象*/$test_two = SingletonTest::getInstance();$test_two->getName();

命令行下运行结果:

PHP设计模式------单例模式

原文地址:https://www.cnblogs.com/BluePegasus/p/8157499.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved