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 htmlentities和htmlspecialchars 的区别
Aug 18 PHP
PHP PDO函数库详解
Apr 27 PHP
php expects parameter 1 to be resource, array given 错误
Mar 23 PHP
PHP filter_var() 函数 Filter 函数
Apr 25 PHP
php 批量替换html标签的实例代码
Nov 26 PHP
ThinkPHP中redirect用法分析
Dec 05 PHP
UTF-8正则表达式如何匹配汉字
Aug 03 PHP
php设计模式之委托模式
Feb 13 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
php读取qqwry.dat ip地址定位文件的类实例代码
Nov 15 PHP
通过源码解析Laravel的依赖注入
Jan 22 PHP
php实现银联商务公众号+服务窗支付的示例代码
Oct 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
PHP4与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
Yii框架实现的验证码、登录及退出功能示例
2017/05/20 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
jquery+json 通用三级联动下拉列表
2010/04/19 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
jquery实现拖拽调整Div大小
2015/01/30 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
jQuery之动画效果大全
2016/11/09 Javascript
微信小程序 网络请求(GET请求)详解
2016/11/16 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
nodejs实例解析(输出hello world)
2017/01/03 NodeJs
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
转换layUI的数据表格中的日期格式方法
2019/09/19 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
[55:18]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python抓取电影天堂电影信息的代码
2016/04/07 Python
Python字符串格式化的方法(两种)
2017/09/19 Python
手把手教你python实现SVM算法
2017/12/27 Python
python获取磁盘号下盘符步骤详解
2019/06/19 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
Python正则表达式如何匹配中文
2020/05/27 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
使用Html5、CSS实现文字阴影效果
2018/01/17 HTML / CSS
ToysRus日本官网:玩具反斗城
2018/09/08 全球购物
澳大利亚和新西兰最大的在线旅行社之一:Aunt Betty
2019/08/07 全球购物
工程承包协议书
2014/04/22 职场文书
2014年新生军训方案
2014/05/01 职场文书
4S店收银员岗位职责
2015/04/07 职场文书
国庆阅兵观后感
2015/06/15 职场文书
浅谈python中的多态
2021/06/15 Python
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL