公告:本站提供编程开发方面的技术交流与分享,打造最佳教程网,希望能为您排忧解难!

PHP教程PHP高级接口总结

PHP高级接口总结

更新时间:2013-03-29 14:00:34 |

Countable{
 abstract public int count( void )
}
实现这个接口的对象,可以使用count($obj)方法,该方法将返回您实现的方法的返回值。

Serializable{
 abstract public string serialize( void )
 abstract public mixed unserialize( string $serialized )
}
实现这个接口的类不再支持__sleep的()和__wakeup()。该类被序列化的时候,或调用serialize方法,该方法必须返回一个空字符串或标准的序列化字符串。当该类被反序列化的时候,会自动调用unserialize方法,会将你序列化的时候返回的字符串作为参数返回给unserialize。使用此接口的好处就是,你在程序里面对该类的一切修改,都不会进入到序列化的字符串里面,而且保持原始的属性;在反序列化出来的类,不会调用原始的构造函数。

ArrayAccess{
 abstract public boolean offsetExists( mixed $offset )
 abstract public mixed offsetGet( mixed $offset )
 abstract public void offsetSet( mixed $offset , mixed $value )
 abstract public void offsetUnset( mixed $offset )
}
实现该接口的对象,可以使用像数组一样的一些方法(如isset、unset、$value = $obj[$key]、$obj[$key] = $value 方法)。

Iterator extends Traversable{
 abstract public mixed current( void ) //返回当前的元素
 abstract public scalar key( void )   //返回当前元素的关键
 abstract public void next( void )   //将指针向下移动
 abstract public void rewind( void ) //重置指针
 abstract public boolean valid( void ) //检查是否可以继续执行
}
实现该接口,可以使对象可以用foreach方法来遍历。使用foreach的时候会调用实现的方法,顺序如下:
初始化的时候: ::rewind->::valid->::current->::key
以后调用顺序为:::next->::valid->::current->::key

 

 

ArrayIterator
这个迭代允许未设置和修改价值观和钥匙,而在遍历数组和对象
。当你想重复在同一阵列的多个次,你需要实例ArrayObject,让它创建ArrayIterator实例引用它通过使用foreach或通过调用其getIterator()方法或手动。

ArrayObject implements IteratorAggregate, Traversable, ArrayAccess, Serializable, Countable
ArrayIterator implements Iterator, Traversable, ArrayAccess, SeekableIterator, Countable
LimitIterator extends IteratorIterator implements OuterIterator, Traversable, Iterator

Traversable

Interface to detect if a class is traversable using foreach.
Traversable
IteratorAggregate extends Traversable{
 abstract publicTraversable getIterator( void )
}


SeekableIterator extends Iterator{
 abstract public void seek( int $position )
 abstract public mixed Iterator::current( void )
 abstract publicscalar Iterator::key( void )
 abstract public void Iterator::next( void )
 abstract public void Iterator::rewind( void )
 abstract public boolean Iterator::valid( void )
}

 


OuterIterator extends Iterator{
 public Iterator getInnerIterator( void )
 abstract public mixed Iterator::current( void )
 abstract publicscalar Iterator::key( void )
 abstract public void Iterator::next( void )
 abstract public void Iterator::rewind( void )
 abstract public boolean Iterator::valid( void )
}
APCIteratorimplements Iterator, Traversable{
__construct (string $cache [, mixed $search = null [, int $format [, int $chunk_size = 100 [, int $list ]]]] )
public mixedcurrent( void )
public integergetTotalCount( void )
public integergetTotalHits( void )
public intgetTotalSize( void )
public stringkey( void )
public voidnext( void )
public voidrewind( void )
public voidvalid( void )
}

AppendIterator extends IteratorIterator implements OuterIterator, Traversable, Iterator{
 public void append ( Iterator $iterator )
 __construct( void )
 public void current( void )
 public void getArrayIterator( void )
 public void getInnerIterator( void )
 public void getIteratorIndex( void )
 public void key( void )
 public void next( void )
 public void rewind( void )
 public void valid( void )


 IteratorIterator::construct( Traversable $iterator )
 public voidIteratorIterator::current( void )
 public voidIteratorIterator::getInnerIterator( void )
 public voidIteratorIterator::key( void )
 public voidIteratorIterator::next( void )
 public voidIteratorIterator::rewind( void )
 publicboolIteratorIterator::valid( void )
}

CachingIterator extends IteratorIterator implements OuterIterator, Traversable, Iterator, ArrayAccess, Countable{
 constinteger CachingIterator::CALL_TOSTRING= 1;
 constinteger CachingIterator::CATCH_GET_CHILD= 16;
 constinteger CachingIterator::TOSTRING_USE_KEY= 2;
 constinteger CachingIterator::TOSTRING_USE_CURRENT= 4;
 constinteger CachingIterator::TOSTRING_USE_INNER= 8;
 constinteger CachingIterator::FULL_CACHE= 256;
 __construct ( Iterator $iterator [, string $flags ] )
 public void count( void )
 public void current( void )
 public void getCache( void )
 public void getFlags( void )
 public void getInnerIterator( void )
 public void hasNext( void )
 public void key( void )
 public void next( void )
 public void offsetExists( string $index )
 public void offsetGet( string $index )
 public void offsetSet( string $index , string $newval )
 public void offsetUnset( string $index )
 public void rewind( void )
 public void setFlags( bitmask $flags )
 public void __toString( void )
 public void valid( void )
}

最佳教程网

最大的技术交流平台 www.goodxyx.com© CopyRight 2011-2013, All Rights Reserved

浙ICP备11033019号