易截截图软件、单文件、免安装、纯绿色、仅160KB

PHP SPL笔记


这几天,我在学习PHP语言中的SPL

这个东西应该属于PHP中的高级内容,看上去很复杂,但是非常有用,所以我做了长篇笔记。不然记不住,以后要用的时候,还是要从头学起。
由于这是供自己参考的笔记,不是教程,所以写得比较简单,没有多解释。但是我想,如果你是一个熟练的PHP5程序员,应该足以看懂下面的材料,而且会发现它很有用。现在除此之外,网上根本没有任何深入的SPL中文介绍。
================
PHP SPL笔记
目录
第一部分 简介
1. 什么是SPL?
2. 什么是Iterator?
第二部分 SPL Interfaces
3. Iterator界面
4. ArrayAccess界面
5. IteratorAggregate界面
6. RecursiveIterator界面
7. SeekableIterator界面
8. Countable界面
第三部分 SPL Classes
9. SPL的内置类
10. DirectoryIterator类
11. ArrayObject类
12. ArrayIterator类
13. RecursiveArrayIterator类和RecursiveIteratorIterator类
14. FilterIterator类
15. SimpleXMLIterator类
16. CachingIterator类
17. LimitIterator类
18. SplFileObject类
第一部 简介
1. 什么是SPL?
SPL是Standard PHP Library(PHP标准库)的缩写。
根据官方定义,它是“a collection of interfaces and classes that are meant to solve
standard
problems”。但是,目前在使用中,SPL更多地被看作是一种使object(物体)模仿array(数组)行为的interfaces和classes。
2. 什么是Iterator?
SPL的核心概念就是Iterator。这指的是一种Design Pattern,根据《Design
Patterns》一书的定义,Iterator的作用是“provide an object which traverses some aggregate
structure, abstracting away assumptions about the implementation of that
structure.”
wikipedia中说,"an iterator is an object which allows a programmer to traverse
through all the elements of a collection, regardless of its specific
implementation".……"the iterator pattern is a design pattern in which iterators
are used to access the elements of an aggregate object sequentially without
exposing its underlying representation".
通俗地说,Iterator能够使许多不同的数据结构,都能有统一的操作界面,比如一个数据库的结果集、同一个目录中的文件集、或者一个文本中每一行构成的集合。


相关文档:

php stdClass


问题:
你想创建一个对象,并在其中添加一些属性,但是你却不想把它作为一个明确的类正式地定义它。这一点在一些情况下是相当有用的,例如当你需要定义一个方法来返回带有某些属性(不确定的)的对象时,就如同从mysql_fetch_object( ) 或者 imap_header( )的使用一样。
一维数组,我现在特别喜欢把它写成对象,因为键盘� ......

安装php的时候没有mysql支持的后续安装

引用http://www.icnote.com/Mysql-php-connector/
 由于公司的服务器开始只是用于java的支持,装了apache,mysql,php,但是php的安装没有对mysql进行支持,今天对他进行了扩展,记录如下。
      首先,安装mysql和php的连接扩展,需要以下包。可以在http://rpmfind.net/
找到,根 ......

php 安全

如何不使用prepared statment,而是用过滤的方法避免SQL注入呢?
一般来说mysql自带的过滤函数是比较可靠的。mysql_real_escape_string()
但是这个函数在某些字符集中有问题,比如GBK。如果你用UTF8那没关系。
在PHP里设置数据库的字符集不应该用:mysql_query("SET NAMES UTF8");
而应该用:mysql_set_charset()
这样 ......

PHP下ereg实现匹配ip的正则


$ip = "1.1.1.255".chr(0)."haha";
if(ereg("^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$",$ip)) {
echo $ip;
} else {
echo "unknown";
}
这个ereg正则限制了$ip的数据为xxx.xxx.xxx.xxx这样的形式,表面上看上面的代码应该输出"unknown",而实际却输出了"1.1.1.255haha",因为ereg函数存在NULL截断� ......

php打印函数集合

 
1 echo();2 print();3 die();4 printf();5 sprintf();6 print_r();7 var_dump();
1 echo()
  可以同时输出多个字符串,可以多个参数,并不需要圆括号,无返回值。
2 print()
  只可以同时输出一个字符串,一个参数,需要圆括号,有返回值,当其执行失败时返flase .print  的用法和C语 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号