当前位置: 首页 > 后端技术 > PHP

PHP的预定义接口

时间:2023-03-30 05:57:33 PHP

在看Yii框架源码的时候,看到很多Classtoimplements\ArrayAccess,所以追源让我看到了一个我没去过的地方,那就是:PredefinedInterfacesandClassespredefinedInterfacesPHP的预定义接口包括这些:Traversable遍历IteratorIteratorAggregateAggregateIteratorArrayAccessArrayAccessSerializableSerializationClosureGeneratorGenerator接下来我们一一说说:1.Traversable遍历的作用是判断某个类是否可以被遍历,但是数组和对象可以遍历,但是不属于Traversable,判断的方法是instanceofTraversable2。Iterator::current返回当前元素Iterator::key返回当前元素的keyIterator::next前进到下一个元素的方法和执行顺序就是上面的顺序。可以在Internet上找到许多示例。这东西的作用是什么??即可以自定义遍历的具体过程和输出。3.IteratorAggregate聚合迭代器IteratorAggregateextendsTraversable{/*method*/abstractpublicgetIterator(void):Traversable}只有一个方法getIterator4。ArrayAccessarrayaccess看这个,我知道不是所有的对象都可以用$a['property']这种方式访问??,如果你想用这种方式访问??,你必须实现ArrayAccess。它有四个方法:ArrayAccess::offsetExists—检查偏移量是否存在ArrayAccess::offsetGet—获取偏移量值ArrayAccess::offsetSet—设置偏移量值ArrayAccess::offsetUnset—重置偏移量Shifted值5.SerializableSerializableSerializable::serialize—对象的字符串表示Serializable::unserialize—构造对象6.Closure匿名函数Closure::__construct—用于禁止实例化的构造函数Closure::bind—Copy绑定指定$this对象和类作用域的闭包。Closure::bindTo—复制当前闭包对象,绑定指定的$this对象和类作用域。这篇文章可以参考https://www.cnblogs.com/eleven24/p/7487923.html7。发电机发电机