php 设计模式之 单例模式

yipeiwu_com5年前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判断当前用户已在别处登录的方法

本文实例讲述了php判断当前用户已在别处登录的方法。分享给大家供大家参考。具体分析如下: 主要思路如下: 1.登录时,将用户的SessionID记录下来 2.验证登录时,将记录的该用户S...

thinkphp使用phpmailer发送邮件的方法

本文实例讲述了thinkphp使用phpmailer发送邮件的方法。分享给大家供大家参考。具体分析如下: phpmailer发送邮件是php开发者首选的一个邮件发送插件了,下面我来介绍怎...

php使用NumberFormatter格式化货币的方法

本文实例讲述了php使用NumberFormatter格式化货币的方法。分享给大家供大家参考。具体实现方法如下: $amount = '12345.67'; $formatter =...

PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别

•gzencode 默认使用ZLIB_ENCODING_GZIP编码,使用gzip压缩格式,实际上是使用defalte 算法压缩数据,然后加上文件头和adler32校验 &#...

php访问数组最后一个元素的函数end()用法

本文实例讲述了php访问数组最后一个元素的函数end()用法。分享给大家供大家参考。具体分析如下: end()函数在PHP中用于检索数组中的最后一个元素。end()函数需要一个数组作为其...