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数组
Oct 09 PHP
类的另类用法--数据的封装
Oct 09 PHP
PHP与MySQL开发中页面出现乱码的一种解决方法
Jul 29 PHP
PHP三元运算符的结合性介绍
Jan 10 PHP
PHP会话控制:Session与Cookie详解
Sep 27 PHP
JavaScript实现滚动栏效果的方法
Apr 27 PHP
PHP封装的Twitter访问类实例
Jul 18 PHP
thinkPHP5框架自定义验证器实现方法分析
Jun 11 PHP
详解PHP 二维数组排序保持键名不变
Mar 06 PHP
PHP CURL中传递cookie的方法步骤
May 09 PHP
yii2.0框架使用 beforeAction 防非法登陆的方法分析
Sep 11 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 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/11/24 PHP
php 面向对象的一个例子
2011/04/12 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
PHP基于堆栈实现的高级计算器功能示例
2017/09/15 PHP
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
js innerHTML 改变div内容的方法
2013/08/03 Javascript
js判断浏览器类型的方法
2013/08/07 Javascript
js获取或设置当前窗口url参数的小例子
2013/10/14 Javascript
点击表单提交时出现jQuery没有权限的解决方法
2014/07/23 Javascript
JavaScript插件化开发教程 (四)
2015/01/27 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
深入解析桶排序算法及Node.js上JavaScript的代码实现
2016/07/06 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
js中let和var定义变量的区别
2018/02/08 Javascript
微信小程序 scroll-view的使用案例代码详解
2020/06/11 Javascript
Python中的装饰器用法详解
2015/01/14 Python
浅谈Python类的__getitem__和__setitem__特殊方法
2016/12/25 Python
Win10 安装PyCharm2019.1.1(图文教程)
2019/09/29 Python
Python3.7在anaconda里面使用IDLE编译器的步骤详解
2020/04/29 Python
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
HTML5 SEO优化的一些建议
2020/08/27 HTML / CSS
英国汽车和货车租赁网站:Hertz英国
2016/09/02 全球购物
法国美发器材和产品购物网站:Beauty Coiffure
2016/12/05 全球购物
凯普林包包西班牙官网:Kipling西班牙
2019/04/12 全球购物
100%法国制造的游戏和玩具:Les Jouets Français
2021/03/02 全球购物
专科文秘应届生求职信
2013/11/18 职场文书
对标管理实施方案
2014/03/12 职场文书
学习退步检讨书
2014/09/28 职场文书
趣味运动会新闻稿
2015/07/17 职场文书
小学运动会前导词
2015/07/20 职场文书
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android