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 常用类整理
Dec 23 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
PHP explode()函数用法、切分字符串
Oct 03 PHP
php编写的简单页面跳转功能实现代码
Nov 27 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
Nov 19 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
Dec 04 PHP
yii2.0数据库迁移教程【多个数据库同时同步数据】
Oct 08 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
Nov 03 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 PHP
PHP递归统计系统中代码行数
Sep 19 PHP
如何重写Laravel异常处理类详解
Dec 20 PHP
php中array_fill函数的实例用法
Mar 02 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 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
使用bcompiler对PHP文件进行加密的代码
2010/08/29 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
thinkPHP基于ajax实现的菜单与分页示例
2016/07/12 PHP
php接口隔离原则实例分析
2019/11/11 PHP
js中cookie的使用详细分析
2008/05/28 Javascript
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
11种ASP连接数据库的方法
2015/09/18 Javascript
JavaScript判断手机号运营商是移动、联通、电信还是其他(代码简单)
2015/09/25 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
jQuery javascript获得网页的高度与宽度的实现代码
2016/04/26 Javascript
JavaScript表单焦点自动切换代码
2016/07/24 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
vue与bootstrap实现时间选择器的示例代码
2017/08/26 Javascript
JavaScript同源策略和跨域访问实例详解
2018/04/03 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
vue实现新闻展示页的步骤详解
2019/04/11 Javascript
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
[38:23]完美世界DOTA2联赛循环赛 FTD vs PXG BO2第二场 11.01
2020/11/02 DOTA
在Python的Django框架中加载模版的方法
2015/07/16 Python
浅谈python可视化包Bokeh
2018/02/07 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
Win10+GPU版Pytorch1.1安装的安装步骤
2019/09/27 Python
Python面向对象程序设计之类和对象、实例变量、类变量用法分析
2020/03/23 Python
HTML5使用ApplicationCache接口实现离线缓存技术解决离线难题
2012/12/13 HTML / CSS
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
美国排名第一的在线葡萄酒商店:Wine.com
2016/09/07 全球购物
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
NULL是什么,它是怎么定义的
2015/05/09 面试题
教师年终个人自我评价
2013/10/04 职场文书
导师推荐信范文
2014/05/09 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server