PHP中6个预定义接口的介绍
PHP预定义了以下6个接口:1遍历遍历接口。
哈哈 uff01in事实,它不是一个接口,可以使用PHP,和内部类可以使用,并且它有一个用来检测类是否可以穿越。
如果(合班是遍历){
/ /每
}
2、迭代器迭代器接口
接口概述:
迭代器可延伸
{
返回索引/游标元素
抽象公共混合流(无效)
返回当前光标键元素索引
抽象公共标量密钥(空)
指向下一个元素的当前索引/移动游标
抽象空下一个(空)
重置游标索引是指第一个元素。
抽象公共空白倒带(空白)
确定当前光标是一个元素,通常称为倒带(或下一步)(使用)。
抽象公共有效(无效)
}
以上可以允许类实现一个基本迭代函数,正如您可以看到迭代调用的顺序一样:
类myiterator实现迭代器{
私人$位置= 0;
私有数组=数组(
firstelement
secondelement
最后的元素
);
公共功能__construct(){
$ = >位置= 0;
}
函数倒带(){
var_dump(__method__);
$ = >位置= 0;
}
函数电流(){
var_dump(__method__);
返回这个数组;
}
函数键(){
var_dump(__method__);
返回$此位置;
}
函数下一步(){
var_dump(__method__);
$ + + >位置;
}
函数有效(){
var_dump(__method__);
返回isset(美元->阵列->位置{美元});
}
}
它为新的myiterator美元;
foreach(美元为美元关键=价值){
var_dump(美元,美元的价值);
;
}
3.iteratoraggregate集合迭代器接口
接口概述:
iteratoraggregate {可延伸
获取外部迭代器
摘要公共通行getiterator(void)
}
getiterator是一类迭代器或穿越接口的一个实例。获得外部迭代器实现迭代访问如下。
该类实现了iteratoraggregate {
公共属性=美元的公共财产的一个;
公共财产美元=公共财产两;
公众不公共财产美元=三;
公共功能__construct(){
美元->产权=属性;
}
公共功能getiterator(){
返回新数组迭代器(美元);
}
}
$ obj =新MYDATA;
foreach(obj美元美元美元关键=值){
var_dump(美元,美元的价值);
;
}
4.arrayaccess数组访问接口
接口概述:
{ ArrayAccess
方法
摘要公共布尔offsetexists(混合为偏移)来检查是否有 / /偏移
摘要公共混合(混合偏offsetget美元) / /得到setwindowlongptr
摘要公共无效offsetset(混合为偏移,混合价值) / /设置setwindowlongptr
摘要公共无效offsetunset(混合为偏移) / /重置setwindowlongptr
}
以下可以作为访问对象数组访问:
类对象实现了ArrayAccess {
私有$容器=数组();
公共功能__construct(){
$ =(数组>容器)
== 1,
两个=2,
三= 3,
);
}
公共功能offsetset(美元抵消,美元价值){
如果(is_null($偏移)){
$ >容器;
{人}
$ >容器;
}
}
公共功能offsetexists($偏移){
返回isset(美元->容器{ $偏移});
}
公共功能offsetunset($偏移){
unset(美元->容器{ $偏移});
}
公共功能offsetget($偏移){
返回isset(美元-> ->容器容器美元{ $偏移}){ }:美元偏空;
}
}
$ obj =新目标;
var_dump(isset($ obj {两})))
var_dump($ obj {两});
unset($ obj {两});
var_dump(isset($ obj {两})))
$ obj {两} =值;
var_dump($ obj {两});
$ obj { } = 'append 1;
$ obj { } = 'append 2;
$ obj { } = 'append 3;
print_r($ obj);
5。Serializable序列化接口
接口概述:
{序列化
方法
摘要公共字符串序列化(void) / /字符串对象
摘要公共混合(字符串序列化序列化) / /对象结构
}
实现接口的类__sleep不再支持()和()__wakeup。它使用方便,只要将方法调用序列化对象时,当反序列化序列化的方法,称为。
类对象实现Serializable {
私人数据;
公共功能__construct(){
$ >数据我的私有数据;
}
公共函数Serialize(){
返回序列化(美元,数据);
}
公共函数序列化($数据){
美元->数据序列化($数据);
}
公共函数GetData(){
返回$ >数据;
}
}
$ obj =新目标;
$ SER =连载($ obj);
print_r($辑);
newobj美元=序列化($辑);
print_r($ newobj);
6。关闭
接口概述:
{关闭
方法
__construct(void) / /对构造函数实例化的禁止
公共静态关闭(关闭关闭对象绑定美元,美元,美元NewThis {混合,宝辉} =静态的) / /复制一个闭包,美元范围指定绑定对象和类。
结合公共关闭(对象NewThis美元美元=静态混合宝辉{,}) / /复制当前关闭的对象,这个对象和类美元范围内指定的绑定。
}
类{
私有静态sfoo = 1美元;
私人音孚= 2美元;
}
$ CL1 =静态函数(){
返回::sfoo美元;
};
2美元=功能(){
返回这个->音孚;
};
糖=关闭::绑定美元(约合CL1,null,'a');
Bcl2 =关闭::绑定美元(约合Cl2、新),(A);
echo()糖,;
echo(), 2;