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 相关文章推荐
在任意字符集下正常显示网页的方法一
Apr 01 PHP
收藏的一个php小偷的核心程序
Apr 09 PHP
php 缓存函数代码
Aug 27 PHP
PHP教程之PHP中shell脚本的使用方法分享
Feb 23 PHP
php中使用preg_match_all匹配文章中的图片
Feb 06 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
Jun 05 PHP
PHP获取一年中每个星期的开始和结束日期的方法
Feb 12 PHP
PHP和MySql中32位和64位的整形范围是多少
Feb 18 PHP
Yii2验证器(Validator)用法分析
Jul 23 PHP
php简单压缩css样式示例
Sep 22 PHP
PHP实现微信图片上传到服务器的方法示例
Jun 29 PHP
在laravel中实现ORM模型使用第二个数据库设置
Oct 24 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利用header函数实现文件下载时直接提示保存
2009/11/12 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
jquery validate.js表单验证的基本用法入门
2010/05/13 Javascript
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
JS异常处理的一个想法(sofish)
2013/03/14 Javascript
自己动手手写jQuery插件总结
2015/01/20 Javascript
jQuery制作简洁的图片轮播效果
2015/04/03 Javascript
html5+javascript实现简单上传的注意细节
2016/04/18 Javascript
不间断循环滚动效果的实例代码(必看篇)
2016/10/08 Javascript
js实现倒计时效果(小于10补零)
2017/03/08 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
JavaScript基础进阶之数组方法总结(推荐)
2017/09/04 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
实用的Vue开发技巧
2019/05/30 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
全网小程序接口请求封装实例代码
2020/11/06 Javascript
Django开发中的日志输出的方法
2018/07/02 Python
Django中使用Celery的教程详解
2018/08/24 Python
Python数据可视化库seaborn的使用总结
2019/01/15 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
使用Keras中的ImageDataGenerator进行批次读图方式
2020/06/17 Python
Django多数据库联用实现方法解析
2020/11/12 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
CSS3 制作旋转的大风车(充满童年回忆)
2013/01/30 HTML / CSS
奥地利网上现代灯具和灯饰店:Lampenwelt.at
2018/01/29 全球购物
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
Huda Beauty官方商店:化妆和美容产品
2020/09/05 全球购物
饲料采购员岗位职责
2013/12/19 职场文书
优秀管理者事迹材料
2014/05/22 职场文书
学校关爱留守儿童活动方案
2014/08/27 职场文书
个人总结与自我评价2015
2015/03/11 职场文书
Java虚拟机内存结构及编码实战分享
2022/04/07 Java/Android
win11无线投屏在哪设置? win11无线投屏功能的使用方法
2022/04/08 数码科技