php 設(shè)計(jì)模式之 單例模式
<?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;
}
/**
* 設(shè)置船長(zhǎng)
*
* @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;
}
}
?>
現(xiàn)在看看怎么樣上客
<?php
include 'boat.php';
echo "從前有一條河,河里只有一條船,<br>";
$boat1=boat::getInstance();//因?yàn)橹挥幸粭l船,所以只有一個(gè)實(shí)例
echo "現(xiàn)在張三要到河?xùn)|去,";
$boat1->load('張三');
echo "<br>現(xiàn)在船上坐著:<br>";
foreach ($boat1->whoInboat() as $who){
echo $who.'<br>';
}
echo "<br>現(xiàn)在李四也要過(guò)河?xùn)|去<br>";
$boat1->load('李四');
echo "現(xiàn)在船上坐著:<br>";
foreach ($boat1->whoInboat() as $who){
echo $who.'、';
}
echo "<br><br>王五以為這條河有另一條船,<br>";
$boat2=boat::getInstance();
echo "他現(xiàn)在上船<br>";
$boat2->load('王五');
echo "現(xiàn)在船上坐著:<br>";
foreach ($boat1->whoInboat() as $who){
echo $who.'、';
}
?>
相關(guān)文章
PHP中時(shí)間處理類(lèi)Carbon的用法詳解
Carbon?是php的日期處理類(lèi)庫(kù)(A?simple?PHP?API?extension?for?DateTime.),繼承了PHP的?Datetime?類(lèi)。本文將詳細(xì)講解一下該類(lèi)的使用,需要的可以參考一下2022-05-05
PHP Warning: Module ''modulename'' already loaded in問(wèn)題解決辦法
這篇文章主要介紹了PHP Warning: Module 'modulename' already loaded in問(wèn)題解決辦法,本文總結(jié)了兩種情況,需要的朋友可以參考下2015-03-03
Larave框架通過(guò)sanctum進(jìn)行API鑒權(quán)詳解
Laravel是一套簡(jiǎn)潔、優(yōu)雅的PHP WEB開(kāi)發(fā)框架(PHP Web Framework),具有富于表達(dá)性且簡(jiǎn)潔的語(yǔ)法,Laravel是易于理解且強(qiáng)大的,它提供了強(qiáng)大的工具用以開(kāi)發(fā)大型,健壯的應(yīng)用,例如具有自動(dòng)驗(yàn)證、路由、Session、緩存、數(shù)據(jù)庫(kù)遷移工具、單元測(cè)試等常用的工具和功能2022-07-07
iis下php mail函數(shù)的sendmail配置方法(官方推薦)
很多玩discuz的彭友在使用在線發(fā)郵件的功能,但是測(cè)試了"通過(guò) PHP 函數(shù)的 sendmail 發(fā)送(推薦此方式)"怎么都沒(méi)用,因?yàn)楸救爽F(xiàn)在用的是iis+php環(huán)境,所以就出這么一個(gè)教程,教大家在自己服務(wù)器上配置sendmail2012-04-04
PHP使用XMLWriter讀寫(xiě)xml文件操作詳解
這篇文章主要介紹了PHP使用XMLWriter讀寫(xiě)xml文件操作,結(jié)合實(shí)例形式分析了php基于XMLWriter針對(duì)xml文件進(jìn)行讀寫(xiě)操作相關(guān)實(shí)現(xiàn)技巧,并附帶相關(guān)源碼供讀者下載參考,需要的朋友可以參考下2018-07-07
PHP和Mysql中轉(zhuǎn)UTF8編碼問(wèn)題匯總
這篇文章主要總結(jié)了PHP頁(yè)面和Mysql數(shù)據(jù)庫(kù)的轉(zhuǎn)UTF8編碼問(wèn)題,需要的朋友可以參考下2015-10-10
PHP實(shí)現(xiàn)websocket通信的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)websocket通信的方法,結(jié)合實(shí)例形式分析了php基于websocket類(lèi)的socket通信相關(guān)客戶端與服務(wù)器端操作技巧,需要的朋友可以參考下2018-08-08
php基于curl實(shí)現(xiàn)隨機(jī)ip地址抓取內(nèi)容的方法
這篇文章主要介紹了php基于curl實(shí)現(xiàn)隨機(jī)ip地址抓取內(nèi)容的方法,可生成隨機(jī)IP進(jìn)行訪問(wèn),涉及curl設(shè)置與使用技巧,需要的朋友可以參考下2016-10-10

