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 相关文章推荐
建立文件交换功能的脚本(一)
Oct 09 PHP
用PHP实现维护文件代码
Jun 14 PHP
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
Aug 07 PHP
PHP中strtr字符串替换用法详解
Nov 26 PHP
php+mysqli数据库连接的两种方式
Jan 28 PHP
PHP用mb_string函数库处理与windows相关中文字符及Win环境下开启PHP Mb_String方法
Nov 11 PHP
PHP中set error handler函数用法小结
Nov 11 PHP
详解php中反射的应用
Mar 15 PHP
PHP中Laravel 关联查询返回错误id的解决方法
Apr 01 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
PHP下载文件函数与用法示例
Sep 27 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
福利彩票幸运号码自动生成器
2006/10/09 PHP
PHP4实际应用经验篇(9)
2006/10/09 PHP
php防止站外远程提交表单的方法
2014/10/20 PHP
PHP递归遍历指定文件夹内的文件实现方法
2016/11/15 PHP
thinkPHP框架中执行事务的方法示例
2018/05/31 PHP
浅谈Laravel模板实体转义带来的坑
2019/10/22 PHP
jQuery EasyUI 中文API Layout(Tabs)
2010/04/27 Javascript
基于jQuery实现点击同时更改两个iframe的网址
2010/07/01 Javascript
Jquery 选中表格一列并对表格排序实现原理
2012/12/15 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
js生成缩略图后上传并利用canvas重绘
2014/05/15 Javascript
js中使用replace方法完成某个字符的转换
2014/08/20 Javascript
javascript学习笔记(三)BOM和DOM详解
2014/09/30 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
JavaScript中原型链存在的问题解析
2016/09/25 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
Node.js安装配置图文教程
2017/05/10 Javascript
JavaScript canvas实现围绕旋转动画
2017/11/18 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
[00:10]DOTA2全国高校联赛速递
2018/05/30 DOTA
[52:39]完美世界DOTA2联赛PWL S3 CPG vs Forest 第一场 12.16
2020/12/17 DOTA
python学习必备知识汇总
2017/09/08 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
Python程序员面试题 你必须提前准备!
2018/01/16 Python
python 监听salt job状态,并任务数据推送到redis中的方法
2019/01/14 Python
Python3.7 新特性之dataclass装饰器
2019/05/27 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
关于童年的读书笔记
2015/06/26 职场文书
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
清空 Oracle 安装记录并重新安装
2022/04/26 Oracle
python双向链表实例详解
2022/05/25 Python
pytorch实现加载保存查看checkpoint文件
2022/07/15 Python