php 设计模式之 单例模式

yipeiwu_com6年前PHP代码库
小船类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中output_buffering

一、我们要说一下php中的缓存大概有哪些! 在PHP中,我们可以粗略的将缓存分为客户端缓存(Browser缓存),服务器端缓存(Server缓存)。由于PHP是基于B/S架构的,所以,我...

php模拟post上传图片实现代码

php模拟post上传图片实现代码

本文实例为大家分享了php模拟post上传图片的具体代码,供大家参考,具体内容如下 服务器和客户端都是php语言 但是客户端不是网页,不在浏览器上运行,而是在命令行运行 现在要做的是在客...

redis+php实现微博(三)微博列表功能详解

本文实例讲述了redis+php实现微博列表功能。分享给大家供大家参考,具体如下: 个人主页显示微博列表(自己及关注人的微博列表) /*获取最新的50微博信息列表,列出自己发布的微博...

php开发环境配置记录

【apache安装】 复制代码 代码如下: httpd.exe -k install -n "apache2.2.15" httpd.exe -k start -n "apache2.2...

set_include_path在win和linux下的区别

刚刚调式程序,本来在服务器上好好的程序到了win下居然出错。 后来仔细调式才发现是set_include_path的问题。 在win下,当你要include多个路径的...