PHP 设计模式 笔记与总结(3)SPL 标准库

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

 

 

2. ArrayIterator、AppendIterator、Countable、ArrayObject

3. SPL 提供的函数

 

你可能感兴趣的:(设计模式)