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 相关文章推荐
PHP自动更新新闻DIY
Oct 09 PHP
一个简单的php实现的MySQL数据浏览器
Mar 11 PHP
php ftp文件上传函数(基础版)
Jun 03 PHP
PHP程序员最常犯的11个MySQL错误小结
Nov 20 PHP
PHP表单提交表单名称含有点号(.)则会被转化为下划线(_)
Dec 14 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
php中使用session_set_save_handler()函数把session保存到MySQL数据库实例
Nov 06 PHP
分享一段PHP制作的中文拼音首字母工具类
Dec 11 PHP
PHP面向对象学习之parent::关键字
Jan 18 PHP
php读取本地json文件的实例
Mar 07 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
Oct 10 PHP
laravel配置Redis多个库的实现方法
Apr 10 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
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
php GUID生成函数和类
2014/03/10 PHP
PHP答题类应用接口实例
2015/02/09 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
浅析PHP数据导出知识点
2018/02/17 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
2020/05/26 PHP
改进UCHOME的记录发布,增强可访问性用户体验
2011/01/17 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
js获取指定日期前后的日期代码
2013/08/20 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
详解JavaScript模块化开发
2016/12/04 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
Node.JS 循环递归复制文件夹目录及其子文件夹下的所有文件
2017/09/18 Javascript
ES6中Array.includes()函数的用法
2017/09/20 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
vue 动态组件(component :is) 和 dom元素限制(is)用法说明
2020/09/04 Javascript
JavaScript 获取滚动条位置并将页面滑动到锚点
2021/02/08 Javascript
遍历python字典几种方法总结(推荐)
2016/09/11 Python
python数据处理实战(必看篇)
2017/06/11 Python
python中文乱码不着急,先看懂字节和字符
2017/12/20 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
Python基于mediainfo批量重命名图片文件
2020/12/29 Python
python SOCKET编程基础入门
2021/02/27 Python
英国最大线上综合鞋类商城:Office
2017/12/08 全球购物
丽笙酒店官方网站:Radisson Hotels
2019/05/07 全球购物
举例说明类变量和实例变量的区别
2016/06/30 面试题
Servlet如何得到客户端机器的信息
2014/10/17 面试题
说明书范文
2014/05/07 职场文书
反邪教宣传工作方案
2014/05/07 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
模范班主任事迹材料
2014/12/17 职场文书
go xorm框架的使用
2021/05/22 Golang
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers