zoukankan      html  css  js  c++  java
  • 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
    ");     //入栈
    $stack->push("data2
    ");
    
    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
    ");     //入队
    $queue->enqueue("data2
    ");
    
    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
    ");     //存入堆
    $head->insert("data2
    ");
    
    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 提供的函数

  • 相关阅读:
    JQuery框架中使用blockUI制作自定义的漂亮的网页提示框
    PHP树形菜单一次展开一个子项目,可以记录打开的项目,刷新后不变
    第一次面试
    东软的校园招聘笔试
    fscommand
    从 ActionScript 中调用外部代码
    GCC 参数详解
    flash build找不到调试版plashplayer的解决办法
    C# winform与 flash as 的交互通讯
    LLVM 与 Clang 介绍
  • 原文地址:https://www.cnblogs.com/dee0912/p/4412035.html
Copyright © 2011-2022 走看看