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 提供的函数

  • 相关阅读:
    ASM instance正常启动,但是用sqlplus 连不上的问题
    Ubuntu环境下,项目出现:Call to undefined function curl_init() 提示
    linux安装curl扩展
    https请求排错过程
    php-fpm.conf文件的位置在哪里
    如何查找php-fpm监听的端口
    laravel AppKernel.php中的middleware、middlewareGroups、routeMiddleware
    laravel项目数据库交互逻辑
    Laravel中APP_KEY起什么作用
    php 出现Warning: A non-numeric value encountered问题的原因及解决方法
  • 原文地址:https://www.cnblogs.com/dee0912/p/4412035.html
Copyright © 2011-2022 走看看