PHP 設計模式 筆記與總結(3)SPL 標準庫

2021-09-06 22:22:26 字數 2239 閱讀 1308

spl 庫的使用(php 標準庫)

1. splstack,splqueue,splheap,splfixedarray 等資料結構類

① 棧(splstack)(先進後出的資料結構)

index.php:

<?php

define('basedir',__dir__); //

定義根目錄常量

include basedir.'/common/loader.php';

spl_autoload_register('\\common\\loader::autoload');

$stack = new

splstack();

$stack->push("data1\n"); //

入棧$stack->push("data2\n");

echo

$stack->pop(); //

出棧echo

$stack->pop();

執行,頁面輸出(檢視原始檔):

data2

data1

② 佇列(splqueue)(先進先出的資料結構)

index.php:

<?php

define('basedir',__dir__); //

定義根目錄常量

include basedir.'/common/loader.php';

spl_autoload_register('\\common\\loader::autoload');

$queue = new

splqueue();

$queue->enqueue("data1\n"); //

入隊$queue->enqueue("data2\n");

echo

$queue->dequeue(); //

出隊echo

$queue->dequeue();

執行,頁面輸出(檢視原始檔):

data1

data2

③ 堆(splheap)

最小對:splminheap

index.php:

<?php

define('basedir',__dir__); //

定義根目錄常量

include basedir.'/common/loader.php';

spl_autoload_register('\\common\\loader::autoload');

$head = new

splminheap();

$head->insert("data1\n"); //

存入堆$head->insert("data2\n");

echo

$head->extract(); //

提取堆中的資料

echo

$head->extract();

執行,頁面輸出(源**):

data1

data2

④ 固定尺寸的陣列(splfixedarray )

index.php:

<?php

define('basedir',__dir__); //

定義根目錄常量

include basedir.'/common/loader.php';

spl_autoload_register('\\common\\loader::autoload');

$array = new splfixedarray(10); //

固定長度的陣列,例如長度為10

$array[0] = 123;

$array[9] = 1234;

var_dump($array);

執行,頁面輸出:

object(splfixedarray)[1]

int 123

null

null

null

null

null

null

null

null

int 1234

3. spl 提供的函式

PHP 設計模式 筆記與總結(7)介面卡模式

介面卡模式可以將截然不同的函式介面封裝成統一的 api 實際應用舉例 php 的資料庫操作有 mysql,mysqli,pdo 三種,可以用介面卡模式統一成一致。類似的場景還有 cache 介面卡,將 memcache,redis,file,apc 等不同的快取函式,統一成一致 實現 在 commo...

PHP設計模式學習筆記 3 基本設計模式概念

mvc的特點是 通過檢視和模型之間建立訂閱 通知協議,實現檢視和模型的解耦。從mvc開始討論設計模式中的各種工具,應為大多數設計模式都是與mvc有關的,只有某些部分是與mvc沒關。ivehicle.php inte ce ivehicle car.php include once ivehicle....

程式設計開發常用設計模式學習與總結

程式設計開發常用設計模式學習與總結。一。單例模式 有以下的特點 eg。每台計算機可以有若干通訊埠,系統應當集中管理這些通訊埠,以避免乙個通訊埠同時被兩個請求同時呼叫。為了避免不一致狀態 1 單例類只能有乙個例項。2 單例類必須自己建立自己的唯一例項。3 單例類必須給所有其他物件提供這一例項。1 懶漢...