美文网首页
PHP的SPL标准库

PHP的SPL标准库

作者: f09037cb27f7 | 来源:发表于2020-02-28 17:20 被阅读0次

SPL标准PHP类库。是php内置的一些拓展类和拓展接口,其内容包含数据结构、迭代器、接口、异常、SPL函数,文件处理等内容。SPL拓展只能用于PHP5.3版本及以后,并且不需要进行额外的配置,可以直接使用。
1、栈
  栈是一种先进后出的数据结构。并且只能对栈的两端进行操作,进栈或者出栈。SplStack类通过使用一个双向链表来提供栈的主要功能。将出栈想象成遍历一个相反的数组的过程

$stack = new SplStack();
$stack->push('data1<br>');//入栈
$stack->push('data2<br>');
$stack->unshift("data3<br>");//将’data3‘放入栈底
echo $stack->pop();//出栈 data2
echo $stack->pop();//data1
echo $stack->pop();//data3

2、对列
  队列是一种先进先出的数据结构。SplQueue 类同样通过使用一个双向链表来提供队列的主要功能。

$queue = new SplQueue();
$queue->enqueue('data1');
$queue->enqueue('data2');
$queue->enqueue('data3');
echo $queue->dequeue(); // data1
echo $queue->dequeue(); // data2
echo $queue->dequeue(); // data3

3、堆
  堆就是为了实现优先队列而设计的一种数据结构,它是通过构造二叉堆实现。其中根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆,最大堆(SplMaxHeap)和最小堆(SplMinHeap)都继承它实现的堆主要用于排序。

//最大堆 升序输出
$heap = new SplMaxHeap();
$heap->insert('E');
$heap->insert('B');
$heap->insert('D');
$heap->insert('A');
$heap->insert('C');
echo $heap->extract().'<br>'; # E
echo $heap->extract().'<br>'; # D

echo "<br>------------------------<br>";
// 最小堆 降序输出
$heap = new SplMinHeap();
$heap->insert('E');
$heap->insert('B');
$heap->insert('D');
$heap->insert('A');
$heap->insert('C');
echo $heap->extract().'<br>';
echo $heap->extract().'<br>';

4、固定数组


//固定数组
$i = 1000000;
$fixbtime = microtime(true);
$fixstart = memory_get_usage();
$fixArray = new SplFixedArray($i);//生成长度为i的固定数组
$fixend = memory_get_usage();
$fixetime = microtime(true);
//普通数组
$btime2 = microtime(true);
$arr = array_fill(0, $i, null);
$end = memory_get_usage();

//生成固定长度的固定数组和普通数组所用时间
echo $fixetime - $fixbtime, PHP_EOL;        //固定数组 0.0065009593963623 
echo microtime(true) - $btime2, PHP_EOL;    //普通数组 0.1734619140625  
//生成固定长度的固定数组和普通数组所占内存
echo $fixend - $fixstart, PHP_EOL;          //固定数组 4000280 byte
echo $end - $fixend, PHP_EOL;               //普通数组 52194712 byte

相关文章

  • PHP面试题

    1,PHP SPL(PHP标准库) SPL是用于解决典型问题(standard problems)的一组接口与类的...

  • PHP的SPL标准库

    SPL标准PHP类库。是php内置的一些拓展类和拓展接口,其内容包含数据结构、迭代器、接口、异常、SPL函数,文件...

  • PHP中的一些标准库

    很多PHPer都不知道PHP有着自己的一些标准库,官网已经列出了SPL的PHP标准库 标准库中主要的一些数据结构 ...

  • php SPL(PHP标准库讲解)

    PHP SPL标准库 官方解释: SPL 提供了一套标准的数据结构。它们按底层实现进行分组, 通常定义了它们的一般...

  • PHP标准库 (SPL)实现常用数据结构

    php标准库(spl) 栈:先进后出,后进先出 $q = new SplStack();$q[] = 1;$q[]...

  • 章节八:基本数据结构二

    SPL(Standard PHP Library,PHP标准库)中并无树和图数据结构的实现,考虑到实用性,同时呼应...

  • PHP基础 -- 类自动载入

    使用PHP标准库SPL,中的自动载入功能,自动require类文件 创建4个文件 index.php主入口文件 C...

  • PHP SPL标准库之堆

    简介 堆(英语:heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满...

  • spl标准库之splFixedArray

    splFixedArray是PHP官方提供的SPL标准库中提供的其中一个数据接口,不同于PHP的array,他更偏...

  • PHP SPL标准库之双向链表

    简介 SPL是用于解决典型问题(standard problems)的一组接口与类的集合,包括数据结构、迭代器、接...

网友评论

      本文标题:PHP的SPL标准库

      本文链接:https://www.haomeiwen.com/subject/akbbchtx.html