单例模式
Singleton.php
<?php
namespace singleton;
/**
* 单例
*/
class Singleton
{
/**
* 自身实例
*
* @var object
*/
private static $_instance;
/**
* 构造函数
*
* @return void
*/
private function __construct()
{
}
/**
* 魔法方法
* 禁止clone对象
*
* @return string
*/
public function __clone()
{
echo 'clone is forbidden';
}
/**
* 获取实例
*
* @return object
*/
public static function getInstance()
{
if (!self::$_instance instanceof self) {
self::$_instance = new self;
}
return self::$_instance;
}
/**
* 测试方法
*
* @return string
*/
public function test()
{
echo "这是个测试 \n";
}
}
test.php
<?php
/**
* 创建型模式
*
* php单例模式
*
* @author TIGERB <https://github.com/TIGERB>
* @example 运行 php test.php
*/
// 注册自加载
spl_autoload_register('autoload');
function autoload($class)
{
require dirname($_SERVER['SCRIPT_FILENAME']) . '//..//' . str_replace('\\', '/', $class) . '.php';
}
/************************************* test *************************************/
use singleton\Singleton;
// 获取单例
$instance = Singleton::getInstance();
$instance->test();
// clone对象试试
$instanceClone = clone $instance;
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。