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 数组和字符串互相转换实现方法
Mar 26 PHP
CI框架在CLI下执行占用内存过大问题的解决方法
Jun 17 PHP
php一维二维数组键排序方法实例总结
Nov 13 PHP
codeigniter实现get分页的方法
Jul 10 PHP
WordPress中用于获取搜索表单的PHP函数使用解析
Jan 05 PHP
thinkphp中字符截取函数msubstr()用法分析
Jan 09 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
PHP编程中的Session阻塞问题与解决方法分析
Aug 07 PHP
php使用curl下载指定大小的文件实例代码
Sep 30 PHP
PHP PDOStatement::getAttribute讲解
Feb 01 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
Feb 20 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/01/23 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
2020/08/17 PHP
php正则修正符用法实例详解
2016/12/29 PHP
当jQuery遭遇CoffeeScript的时候 使用分享
2011/09/17 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
javascript动态修改Li节点值的方法
2015/01/20 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
jQuery实现锚点scoll效果实例分析
2015/03/10 Javascript
JavaScript生成SQL查询表单的方法
2015/08/13 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
jQuery on()方法绑定动态元素的点击事件无响应的解决办法
2016/07/07 Javascript
JavaScript数组操作详解
2017/02/04 Javascript
Bootstrap.css与layDate日期选择样式起冲突的解决办法
2017/04/07 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
2017/08/04 Javascript
使用Vue完成一个简单的todolist的方法
2017/12/01 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
深入理解JS异步编程-Promise
2019/06/03 Javascript
使用layer.msg 时间设置不起作用的解决方法
2019/09/12 Javascript
vue接通后端api以及部署到服务器操作
2020/08/13 Javascript
简单介绍Python中的len()函数的使用
2015/04/07 Python
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
Python选择网卡发包及接收数据包
2019/04/04 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
HTML5单页面手势滑屏切换原理分析
2017/07/10 HTML / CSS
Marlies Dekkers内衣荷兰官方网店:荷兰奢侈内衣品牌
2020/03/27 全球购物
常用UNIX 命令(Linux的常用命令)
2015/12/26 面试题
《小小竹排画中游》教学反思
2014/02/26 职场文书
财务部岗位职责范本
2015/04/14 职场文书
圣诞晚会主持词
2015/07/01 职场文书
初三语文教学反思
2016/03/03 职场文书
Node实现搜索框进行模糊查询
2021/06/28 Javascript
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android