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连接MySQL代码的参数说明
Jun 07 PHP
PHP 文件类型判断代码
Mar 13 PHP
php 静态变量与自定义常量的使用方法
Jan 26 PHP
PHP的基本常识小结
Jul 05 PHP
php使用strtotime和date函数判断日期是否有效代码分享
Dec 25 PHP
smarty模板局部缓存方法使用示例
Jun 17 PHP
php中get_meta_tags()、CURL与user-agent用法分析
Dec 16 PHP
PHP实现获取中英文首字母
Jun 19 PHP
利用PHP绘图函数实现简单验证码功能的方法
Oct 18 PHP
PHP基于SimpleXML生成和解析xml的方法示例
Jul 17 PHP
ThinkPHP5 验证器的具体使用
May 31 PHP
laravel框架分组控制器和分组路由实现方法示例
Jan 25 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 session 预定义数组
2009/03/16 PHP
php中session_id()函数详细介绍,会话id生成过程及session id长度
2015/09/23 PHP
PHP判断表达式中括号是否匹配的简单实例
2016/10/22 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
2017/08/31 PHP
laravel dingo API返回自定义错误信息的实例
2019/09/29 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
显示、隐藏密码
2006/07/01 Javascript
addEventListener和attachEvent二者绑定的执行函数中的this不相同
2012/12/09 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
2014/10/31 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
2016/06/24 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
关于Vue的路由权限管理的示例代码
2018/03/06 Javascript
ES6与CommonJS中的模块处理的区别
2018/06/13 Javascript
Vue2.0点击切换类名改变样式的方法
2018/08/22 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
Vue实战教程之仿肯德基宅急送App
2019/07/19 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
python生成IP段的方法
2015/07/07 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
python re模块findall()函数实例解析
2018/01/19 Python
Python用61行代码实现图片像素化的示例代码
2018/12/10 Python
Python3 Post登录并且保存cookie登录其他页面的方法
2018/12/28 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
python opencv实现简易画图板
2020/08/27 Python
Python+Opencv实现把图片、视频互转的示例
2020/12/17 Python
唤醒头发毛囊的秘密武器:Grow Gorgeous
2016/08/28 全球购物
企业后勤岗位职责
2014/02/28 职场文书
《陈涉世家》教学反思
2014/04/12 职场文书
学习普通话的体会
2014/11/07 职场文书
世界遗产导游词
2015/02/13 职场文书
国庆节新闻稿
2015/07/17 职场文书
高中历史教学反思
2016/02/19 职场文书
OpenCV-Python直方图均衡化实现图像去雾
2021/06/07 Python