spl 庫的使用(php 標準庫)
1. splstack,splqueue,splheap,splfixedarray 等資料結構類
① 棧(splstack)(先進後出的資料結構)
index.php:
<?phpdefine('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();
執行,頁面輸出(檢視原始檔):
data2data1
② 佇列(splqueue)(先進先出的資料結構)
index.php:
<?phpdefine('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();
執行,頁面輸出(檢視原始檔):
data1data2
③ 堆(splheap)
最小對:splminheap
index.php:
<?phpdefine('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();
執行,頁面輸出(源**):
data1data2
④ 固定尺寸的陣列(splfixedarray )
index.php:
<?phpdefine('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 懶漢...