怎么在php中遍历对象

  介绍

这篇文章将为大家详细讲解有关怎么在php中遍历对象,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

php开发环境搭建工具有哪些

一、phpStudy,是一个新手入门最常用的开发环境,二,WampServer, WampServer也同样的也是和phpStudy一样操作简单对小白比较友好。三,XAMPP, XAMPP Apache (php + MySQL + + PERL)是一个功能强大的建站集成软件包;四,MAMP, MAMP分为两种MAMP和MAMP Mac Pro。五,宝塔面板,宝塔面板是一款服务器管理软件,支持windows和linux系统,六UPUPW, UPUPW是目前windows平台下最具特色的Web服务器php套件。

//,普通遍历   class    {   ,,,public  a1 美元;=,& # 39;1 & # 39;;   ,,,public  a2 美元;=,& # 39;2 & # 39;;   ,,,public  a3 美元;=,& # 39;3 & # 39;;      ,,,private  a4 美元;=,& # 39;4 & # 39;;   ,,,protected  a5 美元;=,& # 39;5 & # 39;;      ,,,public  a6 美元;=,& # 39;6 & # 39;;      ,,,public  function 测试()   ,,,{   ,,,,,,,echo  & # 39;测试# 39;;   ,,,}   }   $ a =, new  ();   foreach  (a 美元;as  k 美元;=祝辞,美元v), {   ,,,echo  k美元,& # 39;===& # 39;,v,美元,PHP_EOL;   }//a1===1//a2===2//a3===3//,a6===6

不管是方法还是受保护或者私有的变量,都无法遍历出来。只有公共的属性才能被遍历出来。其实,我们之前在讲设计模式时讲过的迭代器模式就是专门用来进行对象遍历的,而且PHP已经为我们准备好了相关的接口,我们只需要去实现这个接口就可以完成迭代器模式的创建了。具体的内容可以参考之前的设计模式系列文章:PHP设计模式之迭代器模式

//,实现迭代器接口   class  B  implements 迭代器   {   ,,,private  var 美元;=,[];      ,,,public  function  __construct(数组)   ,,,{   ,,,,,,,if  (is_array(数组)美元),{   ,,,,,,,,,,,这个→美元var =,美元数组;   ,,,,,,,}   ,,,}      ,,,public  function 倒带()   ,,,{   ,,,,,,,echo “复卷\ n";   ,,,,,,,重置($ this→var);   ,,,}      ,,,public  function 目前()   ,,,{   ,,,,,,,var 美元;=,当前($ this→var);   ,,,,,,,echo “当前:,$ var \ n";   ,,,,,,,return  $ var;   ,,,}      ,,,public  function 关键()   ,,,{   ,,,,,,,var 美元;=,关键($ this→var);   ,,,,,,,echo “关键:,$ var \ n";   ,,,,,,,return  $ var;   ,,,}      ,,,public  function  next ()   ,,,{   ,,,,,,,var 美元;=,下一个($ this→var);   ,,,,,,,echo “下一个:,$ var \ n";   ,,,,,,,return  $ var;   ,,,}      ,,,public  function 有效的()   ,,,{   ,,,,,,,var 美元;=,这→美元当前的(),!==,假;   ,,,,,,,echo “有效:,{$ var} \ n";   ,,,,,,,return  $ var;   ,,,}   }      $ b =, new  B ([1,, 2,, 3,, 4]);      foreach  (b 美元;as  k 美元;=祝辞,美元v), {   ,,,echo  k美元,& # 39;===& # 39;,v,美元,PHP_EOL;   }//复卷//当前:,1//,有效:1//当前:,1//,关键:0//0===1   下://,,2//当前:,2//,有效:1//当前:,2//,关键:1//1===2//,下:3//当前:,3//,有效:1//当前:,3//,关键:2//2===3   下://,,4//当前:,4//,有效:1//当前:,4//,关键:3//3===4   下://,   当前://,//,有效:

假如今天的文章只是讲之前讲过的迭代器模式,那就太没意思了,所以,咱们还要来学习一个更有意思的应用。那就是让对象可以像数组一样进行操作。这个其实也是使用PHP早已为我们准备好的一个接口:ArrayAccess。

//,让类可以像数组一样操作   class  C  implements  ArrayAccess IteratorAggregate   {   ,,,private  container 美元;=,[];   ,,,public  function  __construct ()   ,,,{   ,,,,,,,这个→美元container =, (   ,,,,,,,,,,,“人,=祝辞,1,   ,,,,,,,,,,,“two",=祝辞,2,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在php中遍历对象