PHP检测接口Traversable用法详解


Posted in PHP onDecember 29, 2017

本文实例讲述了PHP检测接口Traversable用法。分享给大家供大家参考,具体如下:

Traversable用于检测一个类是否可以使用 foreach 进行遍历,这是一个无法在 PHP 脚本中实现的内部引擎接口,实际编程中我们使用Iterator接口或者IteratorAggregate接口来实现遍历。

接口摘要:

Traversable {
}

Traversable 重要的一个用处就是判断一个类是否可以遍历,下面是官方例子:

<?php
  if( !is_array( $items ) && !$items instanceof Traversable )
    //Throw exception here
?>

需要注意的是,数组和对象可以通过foreach遍历,但它们没有实现Traversable接口,所以不是Traversable的示例:

<?php
$array=[1,2,3];
$obj = (object) $array;
var_dump($array instanceof \Traversable);
var_dump($obj instanceof \Traversable);
?>

以上代码输出:

boolean false
boolean false

补充说明:

类未实现Iterator接口或者IteratorAggregate接口时,执行foreach遍历将输出所有其能够访问的可见属性

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
在任意字符集下正常显示网页的方法一
Apr 01 PHP
删除及到期域名的查看(抢域名必备哦)
May 14 PHP
php代码运行时间查看类代码分享
Aug 06 PHP
PHP的password_hash()使用实例
Mar 17 PHP
PHP采用get获取url汉字出现乱码的解决方法
Nov 13 PHP
php中current、next与reset函数用法实例
Nov 17 PHP
php 删除cookie方法详解
Dec 01 PHP
常见php数据文件缓存类汇总
Dec 05 PHP
php+js实现百度地图多点标注的方法
Nov 30 PHP
PHP数组遍历的几种常见方式总结
Feb 15 PHP
ThinkPHP5与单元测试PHPUnit使用详解
Feb 23 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
Dec 28 #PHP
PHP迭代器接口Iterator用法分析
Dec 28 #PHP
PHP数组式访问接口ArrayAccess用法分析
Dec 28 #PHP
PHP获取数组中指定的一列实例
Dec 27 #PHP
快速解决PHP调用Word组件DCOM权限的问题
Dec 27 #PHP
详解Yaf框架PHPUnit集成测试方法
Dec 27 #PHP
Laravel中使用Queue的最基本操作教程
Dec 27 #PHP
You might like
用PHP实现WEB动态网页静态
2006/10/09 PHP
用来给图片加水印的PHP类
2008/04/09 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
PHP数组常用函数实例小结
2018/08/20 PHP
javascript得到XML某节点的子节点个数的脚本
2008/10/11 Javascript
腾讯与新浪的通过IP地址获取当前地理位置(省份)的接口
2010/07/26 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
Vue键盘事件用法总结
2017/04/18 Javascript
利用require.js与angular搭建spa应用的方法实例
2017/07/19 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
2017/09/19 Javascript
AngularJS 中的数据源的循环输出
2017/10/12 Javascript
Nuxt.js SSR与权限验证的实现
2018/11/21 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
jQuery zTree插件快速实现目录树
2019/08/16 jQuery
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
python调用系统ffmpeg实现视频截图、http发送
2018/03/06 Python
Python3 使用cookiejar管理cookie的方法
2018/12/28 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
交通事故协议书
2014/04/15 职场文书
职代会闭幕词
2015/01/28 职场文书
土地租赁协议书
2015/01/29 职场文书
被委托人身份证明
2015/08/07 职场文书
初中地理教学反思
2016/02/19 职场文书
简单了解 MySQL 中相关的锁
2021/05/25 MySQL
Redis Stream类型的使用详解
2021/11/11 Redis