资讯专栏INFORMATION COLUMN

PHP SPL标准库常用示例

DrizzleX / 2066人阅读

摘要:标准库是用于解决典型问题的一组接口与类的集合。官方地址常用结构示例栈先进后出队列先进先出堆堆的实现通过构造二叉堆,实为二叉树的一种由于其应用的普遍性,当不加限定时,均指该数据结构的这种实现。这种数据结构具有以下性质。

SPL标准库

SPL是用于解决典型问题(standard problems)的一组接口与类的集合。

官方地址: http://php.net/spl

常用结构示例

栈(先进后出):

$stack = new SplStack();
$stack->push("data1");
echo $stack->pop();

队列(先进先出)

$queue = new SplQueue();
$queue->enquque("data1");
echo $queue->dequque();

堆的实现通过构造二叉堆(binary heap),实为二叉树的一种;由于其应用的普遍性,当不加限定时,均指该数据结构的这种实现。这种数据结构具有以下性质。

任意节点小于(或大于)它的所有后裔,最小元(或最大元)在堆的根上(堆序性)。

堆总是一棵完全树。即除了最底层,其他层的节点都被元素填满,且最底层尽可能地从左到右填入。

将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等

$heap = new SplMinHeap();
$heap->insert("data1");
echo $heap->extract();

固定长度的数据

$array = new SplFixedArray(10);
$array[9] = "data1";
var_dump($array);

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/29812.html

相关文章

  • PHP标准SPL学习之数据结构、常用迭代器、基础接口

    摘要:将数组或者集合中的全部或者一部数据取出来,用迭代器比较方便迭代器能陆续遍历几个迭代器按顺序迭代访问几个不同的迭代器。 一、SPL简介      什么是SPL PHP的标准库SPL:Standard PHP Library      SPL: 用于解决常见普遍问题的一组接口与类的集合      Common Problem: 数学建模/数据结构 解决数据怎么存储的问题 元素遍历 ...

    2i18ns 评论0 收藏0
  • PHP自动加载功能原理解析

    摘要:前言在开始之前,欢迎关注我自己的博客这篇文章是对自动加载功能的一个总结,内容涉及的自动加载功能的命名空间的与标准等内容。要实现第一步,第二步的功能,必须在开发时约定类名与磁盘文件的映射方法,只有这样我们才能根据类名找到它对应的磁盘文件。 前言 在开始之前,欢迎关注我自己的博客:www.leoyang90.cn 这篇文章是对PHP自动加载功能的一个总结,内容涉及PHP的自动加载功能、P...

    Imfan 评论0 收藏0
  • SPL标准专题(3)】Classes

    摘要:我把分为五个部分,,,,而其中是就是做一些类的介绍与相关的类在各自文章内,在介绍这些类之前,先介绍几个接口数组式访问接口只要实现了这个接口,就可以使得像那样操作。只有内部的类用写的类才可以直接实现接口代码中使用或接口来实现遍历。 我把SPL分为五个部分:Iterator,Classes,Exceptions,Datastructures,Function;而其中classes是就是做一...

    binaryTree 评论0 收藏0
  • PHP SPL 笔记

    摘要:界面包含四个必须部署的方法下面就是一个部署界面的实例使用方法如下运行结果如下可以看到,虽然是一个,但是完全可以像那样操作。示例如下类也支持类方法和方法类和类类和类,只支持遍历一维数组。 这几天,我在学习PHP语言中的SPL。 这个东西应该属于PHP中的高级内容,看上去很复杂,但是非常有用,所以我做了长篇笔记。不然记不住,以后要用的时候,还是要从头学起。 由于这是供自己参考的笔记,不是教...

    hoohack 评论0 收藏0
  • PHP面试常考内容之面向对象(2)

    摘要:继上一篇面试常考内容之面向对象发表后,今天更新,需要的可以直接点击文字进行跳转获取。析构函数,当对象被销毁时调用。 PHP面试专栏正式起更,每周一、三、五更新,提供最好最优质的PHP面试内容。继上一篇PHP面试常考内容之面向对象(1)发表后,今天更新(2),需要(1)的可以直接点击文字进行跳转获取。整个面向对象文章的结构涉及的内容模块有: 一、面向对象与面向过程有什么区别?二、面向对...

    Barry_Ng 评论0 收藏0

发表评论

0条评论

DrizzleX

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<