1. <?php
  2. /**
  3. * @package a doubly linked list test
  4. * @author zhaoyingnan<zhaoyn@bbtree.com>
  5. * @copyright
  6. * @version
  7. * @since
  8. **/
  9.  
  10. /* SplDoublyLinkedList
  11. * 方法
  12. SplDoublyLinkedList implements Iterator , ArrayAccess , Countable
  13. {
  14. public __construct ( void )
  15. public void add ( mixed $index , mixed $newval ) 在指定的索引位置插入值
  16. public mixed bottom ( void ) 查看开始位置的节点
  17. public mixed top ( void ) 查看结束位置的节点
  18. public int count ( void ) 返回所有的元素的数量
  19. public void rewind ( void ) 倒回迭代器的开始
  20. public mixed current ( void ) 返回当前节点的信息
  21. public mixed key ( void ) 返回当前节点的索引
  22. public void setIteratorMode ( int $mode ) 设置迭代的模式
  23. public int getIteratorMode ( void ) 返回迭代的模式
  24. public bool isEmpty ( void ) 检查该双向列表是否是空的
  25. public void next ( void ) 移动到下一个节点
  26. public void prev ( void ) 移动到上一个节点
  27. public bool offsetExists ( mixed $index )
  28. public mixed offsetGet ( mixed $index )
  29. public void offsetSet ( mixed $index , mixed $newval )
  30. public void offsetUnset ( mixed $index )
  31. public mixed pop ( void ) 从双向列表的末尾弹出一个节点
  32. public void push ( mixed $value ) 向双向列表的末尾推入一个元素
  33. public mixed shift ( void ) 从双向列表的头部弹出一个节点
  34. public void unshift ( mixed $value ) 向双向列表的头部插入一个元素
  35. public string serialize ( void )
  36. public void unserialize ( string $serialized )
  37. public bool valid ( void ) 检查双向列表是否有更多的节点
  38. }
  39. */
  40. $SplDoublyLinkedList = new SplDoublyLinkedList();
  41. $mysqli = new mysqli('114.55.104.117', 'db_writer', 'ka_32^%*ko', 'db_community');
  42. if($mysqli->connect_errno)
  43. exit('Mysql connect error ' . $mysqli->connect_error);
  44. $query = "show tables like '%zhs_user_timeline_%'";
  45. $result = $mysqli->query($query);
  46. if(!$result)
  47. exit('error ' . $mysqli->error);
  48. while($row = $result->fetch_row())
  49. {
  50. //list($arData[]) = array_values($row);
  51. $SplDoublyLinkedList->push($row[0]);
  52. }
  53. $result->close();
  54. $mysqli->close();
  55.  
  56. echo count($SplDoublyLinkedList), PHP_EOL;
  57. $SplDoublyLinkedList->rewind();
  58. while($SplDoublyLinkedList->valid())
  59. {
  60. var_export($SplDoublyLinkedList->shift());
  61. echo PHP_EOL;
  62. echo count($SplDoublyLinkedList), PHP_EOL;
  63. $SplDoublyLinkedList->next();
  64. }
  65. echo count($SplDoublyLinkedList);
  66. ?>

PHP-SplDoublyLinkedList的更多相关文章

  1. SPL學習之SplDoublyLinkedList

    Standard PHP Library(SPL)是官方提供的标准库,从php5.0.0开始已经默认实现在php中,我们可以类比它为ruby中的gem安装的包.spl里面实现了许多迭代器和数据结构对象 ...

  2. PHP标准库(SPL)- SplDoublyLinkedList类(双向链表)

    class SplDoublyLinkedList implements Iterator, Traversable, Countable, ArrayAccess { const IT_MODE_L ...

  3. 【SPL标准库专题(4)】 Datastructures:SplDoublyLinkedList

    简述 双链表是一种重要的线性存储结构,对于双链表中的每个节点,不仅仅存储自己的信息,还要保存前驱和后继节点的地址. 类摘要 SplDoublyLinkedList implements Iterato ...

  4. PHP SPL(PHP 标准库)

    一.什么是SPL? SPL是用于解决典型问题(standard problems)的一组接口与类的集合.(出自:http://php.net/manual/zh/intro.spl.php) SPL, ...

  5. PHP标准库 (SPL) 笔记

    简介 SPL是Standard PHP Library(PHP标准库)的缩写. The Standard PHP Library (SPL) is a collection of interfaces ...

  6. php SPL学习

    数据结构 SplDoublyLinkedList - 该SplDoublyLinkedList类提供了一个双向链表的主要功能 SplStack - 该SplStack类提供了一种使用双向链表实现栈的主 ...

  7. PHP 标准库 SPL 之数据结构栈(SplStack)简单实践

    PHP 5.3.0 版本及以上的堆栈描述可以使用标准库 SPL 中的 SplStack class,SplStack 类继承双链表 ( SplDoublyLinkedList ) 实现栈. 代码: & ...

  8. paip.php 5.0 5.3 5.4 5.5 -6.0的新特性总结与比较

    paip.php 5.0 5.3 5.4  5.5 -6.0的新特性总结与比较 PHP5的新特性 2 · 对象的参照过渡是默认的(default) 3 · 引入访问属性的限制 3 · 引入访问方法的限 ...

  9. busybox filesystem httpd php-5.5.31 sqlite3 webserver

    /******************************************************************** * busybox filesystem httpd php ...

随机推荐

  1. 原生AJAX入门讲解(含实例)

    相对于jQuery.YUI以及其他一些类库的AJAX封装,原生JS的AJAX显得那么的尴尬,兼容性不好,要记很多的方法属性,调用不便捷,代码臃肿...但我还是想说,原生JS才是最根本最底层的知识(虽然 ...

  2. STM32L时钟

    Four different clock sources can be used to drive the system clock (SYSCLK): 1.HSI ((high-speed inte ...

  3. 【Win10开发】关于AutoSuggestBox

    其实看名字我们就知道,这个控件可以提供一些建议文本.我们在做搜索框时可以做一些文本来让用户选择. 这个控件有两个关键的事件QuerySubmitted和SuggestionChosen事件,当下拉列表 ...

  4. iOS开发之CocoaPods的安装与使用

    前言部分 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods) 可以用来方便的统一管理这些第三方库. 一.安装 由 ...

  5. IOS 动画播放案例

    #import "ViewController.h" @interface ViewController () @property (weak,nonatomic) IBOutle ...

  6. Spring.Net简单用法

    Spring.Net其实就是抽象工厂,只不过更加灵活强大,性能上并没有明显的区别. 它帮我们实现了控制反转. 其有两种依赖注入方式. 第一:属性注入 第二:构造函数注入 首先,我们去  Spring. ...

  7. 2分钟在eclipse下使用SpringBoot搭建Spring MVC的WEB项目

    1. 首先用eclipse创建一个maven工程, 普通maven工程即可 2. 修改pom如下: <?xml version="1.0" encoding="UT ...

  8. php实现设计模式之 组合模式

    <?php /** * 组合模式 * * 将对象组合成树形结构以表示"部分-整体"的层次结构,使得客户对单个对象和复合对象的使用具有一致性 * * * 1) 抽象构件角色Co ...

  9. JavaScript实现通过的集合类

    集合是一种数据结构,用以表示非重复值的无序集合.集合的基础方法包括添加值.检测值是否在集合中,这种集合需要一种通用的实现,以保证操作效率. JavaScript的对象是属性名以及与之对应的值的基本集合 ...

  10. Ext.NET MVC 配置问题总结

    随着VS版本和.NET MVC版本.EF的版本的不断更新,虽然很多功能随着版本的提升而更完善,但对于旧版本开发的软件就有点悲催了,或许很多开发者都遇到类似的问题! 最近有一个项目是用.NET MVC3 ...