php 设计模式之 单例模式


Posted in PHP onDecember 19, 2008

小船类boat.php

<?php 
class boat { 
private static $instance=null; 
private $skipper; 
private $personNum=0; 
private $passengers=array(); 
private function __construct() { 
} 
public static function getInstance(){ 
if (self::$instance==null){ 
self::$instance=new boat(); 
} 
return self::$instance; 
} 
/** 
* 设置船长 
* 
* @param unknown_type $name 
*/ 
public function setSkipper($name){ 
$this->skipper=$name; 
} 
/** 
* 装人 
* 
* @param unknown_type $person 
*/ 
public function load($person){ 
if (!emptyempty($person) and $this->personNum<=5){ 
array_push($this->passengers,$person); 
$this->personNum=$this->personNum+1; 
} 
if ($this->personNum>5) { 
echo 'this boat only load 5 person!'; 
} 
} 
/** 
* 船上装了什么人 
* 
* @return unknown 
*/ 
public function whoInBoat(){ 
return $this->passengers; 
} 
} 
?>

现在看看怎么样上客
<?php 
include 'boat.php'; 
echo "从前有一条河,河里只有一条船,<br>"; 
$boat1=boat::getInstance();//因为只有一条船,所以只有一个实例 
echo "现在张三要到河东去,"; 
$boat1->load('张三'); 
echo "<br>现在船上坐着:<br>"; 
foreach ($boat1->whoInboat() as $who){ 
echo $who.'<br>'; 
} 
echo "<br>现在李四也要过河东去<br>"; 
$boat1->load('李四'); 
echo "现在船上坐着:<br>"; 
foreach ($boat1->whoInboat() as $who){ 
echo $who.'、'; 
} 
echo "<br><br>王五以为这条河有另一条船,<br>"; 
$boat2=boat::getInstance(); 
echo "他现在上船<br>"; 
$boat2->load('王五'); 
echo "现在船上坐着:<br>"; 
foreach ($boat1->whoInboat() as $who){ 
echo $who.'、'; 
} 
?>
PHP 相关文章推荐
php 全文搜索和替换的实现代码
Jul 29 PHP
php 生成文字png图片的代码
Apr 17 PHP
php木马webshell扫描器代码
Jan 25 PHP
php读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
Jul 31 PHP
PHP中如何实现常用邮箱的基本判断
Jan 07 PHP
laravel容器延迟加载以及auth扩展详解
Mar 02 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
Jun 17 PHP
用PHP写的一个冒泡排序法的函数简单实例
May 26 PHP
JSON字符串传到后台PHP处理问题的解决方法
Jun 05 PHP
php添加数据到xml文件的简单例子
Sep 08 PHP
php 微信开发获取用户信息如何实现
Dec 13 PHP
什么是PHP7中的孤儿进程与僵尸进程
Apr 14 PHP
PHP 采集程序 常用函数
Dec 18 #PHP
php IP及IP段进行访问限制的代码
Dec 17 #PHP
php mssql 数据库分页SQL语句
Dec 16 #PHP
linux下 C语言对 php 扩展
Dec 14 #PHP
php 文件状态缓存带来的问题
Dec 14 #PHP
快速开发一个PHP扩展图文教程
Dec 12 #PHP
PHP Google的translate API代码
Dec 10 #PHP
You might like
浅析PHP绘图技术
2013/07/03 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
thinkPHP模型初始化实例分析
2015/12/03 PHP
Zend Framework动作助手(Zend_Controller_Action_Helper)用法详解
2016/03/05 PHP
Smarty3配置及入门语法
2017/02/22 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
js Date自定义函数 延迟脚本执行
2010/03/10 Javascript
子窗体与父窗体传值示例js代码
2013/08/01 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
JQuery对ASP.NET MVC数据进行更新删除
2016/07/13 Javascript
JS判断是否在微信浏览器打开的简单实例(推荐)
2016/08/24 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
vue2.0 资源文件assets和static的区别详解
2018/04/08 Javascript
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
vue基础之data存储数据及v-for循环用法示例
2019/03/08 Javascript
JS实现按比例缩小图片宽高
2020/08/24 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
使用PYTHON创建XML文档
2012/03/01 Python
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
在Python下使用Txt2Html实现网页过滤代理的教程
2015/04/11 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
Python一键安装全部依赖包的方法
2019/08/12 Python
Python之——生成动态路由轨迹图的实例
2019/11/22 Python
印度最大的时尚购物网站:Myntra
2018/09/13 全球购物
Intersport西班牙:在线体育商店
2019/11/06 全球购物
俄罗斯建筑和装饰材料在线商店:Stroilandia
2020/07/25 全球购物
财务部出纳岗位职责
2013/12/22 职场文书
向国旗敬礼活动小结
2014/09/27 职场文书
博士给导师的自荐信
2015/03/06 职场文书
2015年南京大屠杀纪念日活动总结
2015/03/24 职场文书
Python与C++中梯度方向直方图的实现
2022/03/17 Python