首页
学习
活动
专区
圈层
工具
发布

PHP怎么遍历对象?

PHP怎么遍历对象? 对于php来说,foreach是非常方便好用的一个语法,几乎对于每一个PHPer它都是日常接触最多的请求之一。那么对象是否能通过foreach来遍历呢?...答案是肯定的,但是有个条件,那就是对象的遍历只能获得它的公共属性。...; } // a1===1 // a2===2 // a3===3 // a6===6 不管是方法还是受保护或者私有的变量,都无法遍历出来。...只有公共的属性才能被遍历出来。其实,我们之前在讲设计模式时讲过的迭代器模式就是专门用来进行对象遍历的,而且PHP已经为我们准备好了相关的接口,我们只需要去实现这个接口就可以完成迭代器模式的创建了。...81%8D%E5%8E%86%E5%AF%B9%E8%B1%A1%EF%BC%9F.php 参考文档:https://www.php.net/manual/zh/language.oop5.iterations.php

3.5K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入理解PHP之数组遍历

    经常会有人问我, PHP的数组, 如果用foreach来访问, 遍历的顺序是固定的么? 以什么顺序遍历呢? 比如: php arr[0]  = 2008; foreach (arr as key => 要完全了解清楚这个问题, 我想首先应该要大家了解PHP数组的内部实现结构……… PHP的数组 在PHP中, 数组是用一种...HASH结构(HashTable)来实现的, PHP使用了一些机制, 使得可以在O(1)的时间复杂度下实现数组的增删, 并同时支持线性遍历和随机访问....也就是说, 元素在线性遍历的时候是根据插入的先后顺序来遍历的, 这个特殊的设计使得在PHP中,当使用数字索引时, 元素的先后顺序是由添加的顺序决定的,而不是索引顺序....也就是说, PHP中遍历数组的顺序, 是和元素的添加先后相关的, 那么, 现在我们就很清楚的知道, 文章开头的问题的输出是: huixinchen 2007 2008 所以, 如果你想在数字索引的数组中按照索引大小遍历

    1.1K10

    php遍历目录&删除指定文件中指定内容

    php遍历目录&删除指定文件中指定内容     现在正坐在安静的寝室里,寒假俨然已经离我而去了……今天发的是我寒假里搞的最后一次学习,之后的时间就一直在看海贼王了。    ...以前写过一个C语言的遍历目录+复制文件的程序,很长很复杂,现在用PHP一样可以实现遍历目录,而代码就短了不少。这个程序目的是遍历目录,找到所有指定文件名的文件,并删除其中指定的字符串。 php //功能:删除指定目录(包括子目录)下所有指定文件中指定字符串 $tmpfiledir = $_SERVER["DOCUMENT_ROOT"].'...其实我一开始是用C语言写好的遍历,因为C语言不好对文件操作所以才用php写删除的部分,所以一开始只写了一个del函数,后来干脆把遍历文件也用php写了(似乎比C简单的多),所以又写了一个函数traverse...大家只管看遍历的部分就成,也可以和我之前用C写的遍历的代码对比(我发了源代码的),看看有什么不同。     不过这个版本不支持通配符,所以文件名必须要指定。

    3.8K21

    PHP二维索引数组的2种遍历方式

    我们来看看二维索引数组如何遍历。 php $arr = array(//定义外层数组     array(1,'高某','A公司','北京市','(010)987654321','gm@Linux.com'),//子数组1     array...> 代码解释: 1、第一个for循环,对$arr数组进行子元素遍历,主要遍历$arr数组的行 2、第二个for循环,对$arr数组下面的子数组进行遍历,主要遍历$arr数组的列 3、实际上我们可以把二维数组理解为一张表格...php     foreach($arr as $key=>$arr_item){         echo $key."====";   //取出外层数组$arr的下标         echo " 代码解释: 1、foreach效率相对for循环高,因为foreach是PHP中数组及对象遍历的专用函数 2、$key,取出外层数组$arr的下标 3、$arr_item就是子数组(子数组1,子数组

    2.9K50

    PHP数据结构-图的遍历:深度优先与广度优先

    $visited = []; // 已访问结点 function DFS_AM($graphArr, $x) { global $visited; echo "节点:{$x}", PHP_EOL...接下来我们进行测试: # php 5.3图的遍历:深度优先与广度优先.php 输入结点数:4 请输入边数:3 请输入边,格式为 出 入 权:1 2 1 请输入边,格式为 出 入 权:1 3 1 请输入边...$graph, $x){ global $visited; $p = $graph->adjList[$x]; // 指定结点的第一个边结点 echo "节点:{$x}", PHP_EOL...,接下来也是简单地测试一下: # php 5.3图的遍历:深度优先与广度优先.php 请输入 结点数 边数: 4 3 请输入边,格式为 出 入 权:1 2 1 请输入边,格式为 出 入 权:1 3 1....php 参考文档: 《数据结构》第二版,严蔚敏 《数据结构》第二版,陈越 《数据结构高分笔记》2020版,天勤考研

    1K10
    领券