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版(2)
Oct 09 PHP
深入了解php4(1)--回到未来
Oct 09 PHP
Smarty安装配置方法
Apr 10 PHP
在PHP中操作Excel实例代码
Apr 29 PHP
用PHP读取超大文件的实例代码
Apr 01 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
Jan 07 PHP
php类自动加载器实现方法
Jul 28 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
Jun 20 PHP
php查询及多条件查询
Feb 26 PHP
详解thinkphp5+swoole实现异步邮件群发(SMTP方式)
Oct 13 PHP
PHP 记录访客的浏览信息方法
Jan 29 PHP
PHP如何将图片文件上传到另外一台服务器上
Aug 26 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数据库类
2009/05/27 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
windows7配置Nginx+php+mysql的详细教程
2016/09/04 PHP
php微信公众号开发(3)php实现简单微信文本通讯
2016/12/15 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
javascript打印html内容功能的方法示例
2013/11/28 Javascript
javascript获取select的当前值示例代码(兼容IE/Firefox/Opera/Chrome)
2013/12/17 Javascript
浅谈Javascript中深复制
2014/12/01 Javascript
js实现简单的网页换肤效果
2017/01/18 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
js案例之鼠标跟随jquery版(实例讲解)
2017/07/21 jQuery
微信小程序使用picker实现时间和日期选择框功能【附源码下载】
2017/12/11 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
详解如何使用koa实现socket.io官网的例子
2018/11/04 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
python基础教程之udp端口扫描
2014/02/10 Python
python实现Floyd算法
2018/01/03 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
pandas 层次化索引的实现方法
2019/07/06 Python
Python程序暂停的正常处理方法
2019/11/07 Python
python中对二维列表中一维列表的调用方法
2020/06/07 Python
Python django框架 web端视频加密的实例详解
2020/11/20 Python
Django前后端分离csrf token获取方式
2020/12/25 Python
python实现无边框进度条的实例代码
2020/12/30 Python
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
估算杭州有多少软件工程师
2015/08/11 面试题
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
亮化工程实施方案
2014/03/17 职场文书
财务内勤岗位职责
2014/04/17 职场文书
工作说明书范文
2014/05/07 职场文书
违反单位工作制度检讨书
2014/10/25 职场文书
企业内部管理控制:银行存款控制制度范本
2020/01/10 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers