PHP-SplDoublyLinkedList
- <?php
- /**
- * @package a doubly linked list test
- * @author zhaoyingnan<zhaoyn@bbtree.com>
- * @copyright
- * @version
- * @since
- **/
- /* SplDoublyLinkedList
- * 方法
- SplDoublyLinkedList implements Iterator , ArrayAccess , Countable
- {
- public __construct ( void )
- public void add ( mixed $index , mixed $newval ) 在指定的索引位置插入值
- public mixed bottom ( void ) 查看开始位置的节点
- public mixed top ( void ) 查看结束位置的节点
- public int count ( void ) 返回所有的元素的数量
- public void rewind ( void ) 倒回迭代器的开始
- public mixed current ( void ) 返回当前节点的信息
- public mixed key ( void ) 返回当前节点的索引
- public void setIteratorMode ( int $mode ) 设置迭代的模式
- public int getIteratorMode ( void ) 返回迭代的模式
- public bool isEmpty ( void ) 检查该双向列表是否是空的
- public void next ( void ) 移动到下一个节点
- public void prev ( void ) 移动到上一个节点
- public bool offsetExists ( mixed $index )
- public mixed offsetGet ( mixed $index )
- public void offsetSet ( mixed $index , mixed $newval )
- public void offsetUnset ( mixed $index )
- public mixed pop ( void ) 从双向列表的末尾弹出一个节点
- public void push ( mixed $value ) 向双向列表的末尾推入一个元素
- public mixed shift ( void ) 从双向列表的头部弹出一个节点
- public void unshift ( mixed $value ) 向双向列表的头部插入一个元素
- public string serialize ( void )
- public void unserialize ( string $serialized )
- public bool valid ( void ) 检查双向列表是否有更多的节点
- }
- */
- $SplDoublyLinkedList = new SplDoublyLinkedList();
- $mysqli = new mysqli('114.55.104.117', 'db_writer', 'ka_32^%*ko', 'db_community');
- if($mysqli->connect_errno)
- exit('Mysql connect error ' . $mysqli->connect_error);
- $query = "show tables like '%zhs_user_timeline_%'";
- $result = $mysqli->query($query);
- if(!$result)
- exit('error ' . $mysqli->error);
- while($row = $result->fetch_row())
- {
- //list($arData[]) = array_values($row);
- $SplDoublyLinkedList->push($row[0]);
- }
- $result->close();
- $mysqli->close();
- echo count($SplDoublyLinkedList), PHP_EOL;
- $SplDoublyLinkedList->rewind();
- while($SplDoublyLinkedList->valid())
- {
- var_export($SplDoublyLinkedList->shift());
- echo PHP_EOL;
- echo count($SplDoublyLinkedList), PHP_EOL;
- $SplDoublyLinkedList->next();
- }
- echo count($SplDoublyLinkedList);
- ?>
PHP-SplDoublyLinkedList的更多相关文章
- SPL學習之SplDoublyLinkedList
Standard PHP Library(SPL)是官方提供的标准库,从php5.0.0开始已经默认实现在php中,我们可以类比它为ruby中的gem安装的包.spl里面实现了许多迭代器和数据结构对象 ...
- PHP标准库(SPL)- SplDoublyLinkedList类(双向链表)
class SplDoublyLinkedList implements Iterator, Traversable, Countable, ArrayAccess { const IT_MODE_L ...
- 【SPL标准库专题(4)】 Datastructures:SplDoublyLinkedList
简述 双链表是一种重要的线性存储结构,对于双链表中的每个节点,不仅仅存储自己的信息,还要保存前驱和后继节点的地址. 类摘要 SplDoublyLinkedList implements Iterato ...
- PHP SPL(PHP 标准库)
一.什么是SPL? SPL是用于解决典型问题(standard problems)的一组接口与类的集合.(出自:http://php.net/manual/zh/intro.spl.php) SPL, ...
- PHP标准库 (SPL) 笔记
简介 SPL是Standard PHP Library(PHP标准库)的缩写. The Standard PHP Library (SPL) is a collection of interfaces ...
- php SPL学习
数据结构 SplDoublyLinkedList - 该SplDoublyLinkedList类提供了一个双向链表的主要功能 SplStack - 该SplStack类提供了一种使用双向链表实现栈的主 ...
- PHP 标准库 SPL 之数据结构栈(SplStack)简单实践
PHP 5.3.0 版本及以上的堆栈描述可以使用标准库 SPL 中的 SplStack class,SplStack 类继承双链表 ( SplDoublyLinkedList ) 实现栈. 代码: & ...
- 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 · 引入访问方法的限 ...
- busybox filesystem httpd php-5.5.31 sqlite3 webserver
/******************************************************************** * busybox filesystem httpd php ...
随机推荐
- 原生AJAX入门讲解(含实例)
相对于jQuery.YUI以及其他一些类库的AJAX封装,原生JS的AJAX显得那么的尴尬,兼容性不好,要记很多的方法属性,调用不便捷,代码臃肿...但我还是想说,原生JS才是最根本最底层的知识(虽然 ...
- STM32L时钟
Four different clock sources can be used to drive the system clock (SYSCLK): 1.HSI ((high-speed inte ...
- 【Win10开发】关于AutoSuggestBox
其实看名字我们就知道,这个控件可以提供一些建议文本.我们在做搜索框时可以做一些文本来让用户选择. 这个控件有两个关键的事件QuerySubmitted和SuggestionChosen事件,当下拉列表 ...
- iOS开发之CocoaPods的安装与使用
前言部分 iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods) 可以用来方便的统一管理这些第三方库. 一.安装 由 ...
- IOS 动画播放案例
#import "ViewController.h" @interface ViewController () @property (weak,nonatomic) IBOutle ...
- Spring.Net简单用法
Spring.Net其实就是抽象工厂,只不过更加灵活强大,性能上并没有明显的区别. 它帮我们实现了控制反转. 其有两种依赖注入方式. 第一:属性注入 第二:构造函数注入 首先,我们去 Spring. ...
- 2分钟在eclipse下使用SpringBoot搭建Spring MVC的WEB项目
1. 首先用eclipse创建一个maven工程, 普通maven工程即可 2. 修改pom如下: <?xml version="1.0" encoding="UT ...
- php实现设计模式之 组合模式
<?php /** * 组合模式 * * 将对象组合成树形结构以表示"部分-整体"的层次结构,使得客户对单个对象和复合对象的使用具有一致性 * * * 1) 抽象构件角色Co ...
- JavaScript实现通过的集合类
集合是一种数据结构,用以表示非重复值的无序集合.集合的基础方法包括添加值.检测值是否在集合中,这种集合需要一种通用的实现,以保证操作效率. JavaScript的对象是属性名以及与之对应的值的基本集合 ...
- Ext.NET MVC 配置问题总结
随着VS版本和.NET MVC版本.EF的版本的不断更新,虽然很多功能随着版本的提升而更完善,但对于旧版本开发的软件就有点悲催了,或许很多开发者都遇到类似的问题! 最近有一个项目是用.NET MVC3 ...