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 相关文章推荐
IIS环境下快速安装、配置和调试PHP5.2.0
Dec 17 PHP
PHP中MD5函数使用实例代码
Jun 07 PHP
php生成zip压缩文件的方法详解
Jun 09 PHP
浅析PHP substr,mb_substr以及mb_strcut的区别和用法
Jun 21 PHP
js和php邮箱地址验证的实现方法
Jan 09 PHP
destoon出现验证码不显示时的紧急处理方法
Aug 22 PHP
PHP遍历目录函数opendir()、readdir()、closedir()、rewinddir()总结
Nov 18 PHP
thinkphp如何获取客户端IP
Nov 03 PHP
Yii2中事务的使用实例代码详解
Sep 07 PHP
PHP快速推送微信模板消息
Apr 14 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
Apr 20 PHP
php往mysql中批量插入数据实例教程
Dec 12 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
ftp类(myftp.php)
2006/10/09 PHP
yii框架源码分析之创建controller代码
2011/06/28 PHP
javascript some()函数用法详解
2014/11/13 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
jquery的相对父元素和相对文档定位示例代码
2013/08/02 Javascript
jquery及原生js获取select下拉框选中的值示例
2013/10/25 Javascript
jQuery简易图片放大特效示例代码
2014/06/09 Javascript
JS数组的常见用法实例
2015/02/10 Javascript
javascript实现在下拉列表中显示多级树形菜单的方法
2015/08/12 Javascript
使用CDN和AJAX加速WordPress中jQuery的加载
2015/12/05 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
2017/01/04 Javascript
JavaScript中三个等号和两个等号你了解多少
2017/07/04 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
vue使用rem实现 移动端屏幕适配
2018/09/26 Javascript
Electron autoUpdater实现Windows安装包自动更新的方法
2018/12/24 Javascript
vue实现的请求服务器端API接口示例
2019/05/25 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
使用Python绘制图表大全总结
2017/02/11 Python
Python3.遍历某文件夹提取特定文件名的实例
2018/04/26 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
python并发和异步编程实例
2018/11/15 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
Python3实现二叉树的最大深度
2019/09/30 Python
Python如何对XML 解析
2020/06/28 Python
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
CSS3 transition 实现通知消息轮播条
2020/10/14 HTML / CSS
使用Html5中的cavas画一面国旗
2019/09/25 HTML / CSS
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
What is view? why do we have view?
2012/06/22 面试题
类和结构的区别
2012/08/15 面试题
市场营销个人求职信范文
2014/02/02 职场文书
创业计划书之面包店
2019/09/12 职场文书
解析python中的jsonpath 提取器
2022/01/18 Python