PHP面向对象程序设计之对象的遍历操作示例
本文实例讲述了PHP面向对象程序设计之对象的遍历操作。分享给大家供大家参考,具体如下:
对象的遍历和数组的遍历一样,对象的遍历指的是实例属性的遍历。
下面遍历出来的属性,是在该范围中的“可访问属性”(要考虑访问权限)。
<?php class A{ public $p1 = 1; protected $p2 = 2; private $p3 = 3; static $p4 = 4; } $obj1 = new A(); foreach($obj1 as $key => $value){//$key表示对象的属性,$value是其对应的值 echo "<br />属性$key :" . $value; } ?>
运行结果:
属性p1 :1
可见只有public
修饰的属性才能遍历,那如何使一个对象的所有属性都遍历?在类内部写一个遍历的方法即可。
<?php class A{ public $p1 = 1; protected $p2 = 2; private $p3 = 3; static $p4 = 4; //静态属性 function showAllProperties(){ foreach($this as $key => $value){ echo "<br />属性$key :$value"; } } } $obj1 = new A(); $obj1->showAllProperties(); ?>
运行结果:
属性p1 :1
属性p2 :2
属性p3 :3
但静态属性不属于对象,所以不能遍历。
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php面向对象程序设计入门教程》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。
相关推荐
-
PHP实现删除多重数组对象属性并重新赋值的方法
本文实例讲述了PHP实现删除多重数组对象属性并重新赋值的方法.分享给大家供大家参考,具体如下: 实例:sphinx搜索出来的结果,要去掉某个属性值: $cl = new SphinxClient (); $query = $cl->Query ( $keyword, $index ); 方法一,直接删除属性: foreach ( $query['matches'] as $k => $val ) { unset($query['matches'][$k]["attrs"][
-
php面向对象中static静态属性和静态方法的调用
本文实例讲述了php中static静态属性和静态方法的调用.分享给大家供大家参考.具体如下: 这里分析了php面向对象中static静态属性和静态方法的调用.关于它们的调用(能不能调用,怎么样调用),需要弄明白了他们在内存中存放位置,这样就非常容易理解了.静态属性.方法(包括静态与非静态)在内存中,只有一个位置(而非静态属性,有多少实例化对象,就有多少个属性). 实例: <?php header("content-type:text/html;charset=utf-8"); c
-
php面向对象中static静态属性与方法的内存位置分析
本文实例分析了php面向对象中static静态属性与方法的内存位置.分享给大家供大家参考.具体如下: static静态属性的内存位置-->类,而不是对象.下面做测试来证明一下 <?php header("content-type:text/html;charset=utf-8"); class Human{ static public $name = "小妹"; public $height; public function tell(){ } } ec
-
PHP获取对象属性的三种方法实例分析
本文实例讲述了PHP获取对象属性的三种方法.分享给大家供大家参考,具体如下: 今天查看yii源码,发现yii\base\Model中的attribute()方法是通过反射获取对象的public non-static属性.记得以前看到的代码都是用get_object_vars()这个函数获取的,昨天查看php文档,发现还可以用foreach遍历对象属性.于是写个例子练习下. class TestClass { private $a; protected $b; public $c; public
-
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
本文实例讲述了PHP实现在对象之外访问其私有属性private及保护属性protected的方法.分享给大家供大家参考,具体如下: public 表示全局的访问权限,类内部外部子类都可以访问: private表示私有的访问权限,只有本类内部可以使用: protected表示受保护的访问权限,只有本类或子类或父类中可以访问: 比较经典的用法示例如下: <?php //父类 class father{ public function a(){ echo "function a<br/&g
-
php中类和对象:静态属性、静态方法
在PHP中,使用关键字 static 修饰成员属性和成员方法被称为静态属性和静态方法.静态属性和静态方法不需要在类被实例化的情况下可以直接使用. 静态属性 与普通的成员属性不同,静态属性属于类本身而不属于类的任何实例.静态属性可以被看做是存储在类当中的全局变量,可以在任何地方通过类来访问它们. 由于静态属性不受任何具体对象的限制,所以不需要建立类实例,而可以直接引用类中的静态属性,使用语法格式如下: 类名称::$静态属性名称 其中,符号"::"被称作范围解析操作符,它可以用于访问静态成
-
PHP 5.0对象模型深度探索之属性和方法
可以联用->,如果一个对象的属性包含了一个对象,你可以使用两个->运算符来得到内部对象的属性. 你甚至可以用双重引用的字符串来放置这些表达式. 下面的例子中,对象House中的属性room包含了一组Room对象. 访问方法和访问属性类似.->运算符用来指向实例的方法. 在下面的中调用getLastLogin就是.方法执行起来和类外的函数几乎相同. 如果一个类从另一类中继承而来,父类中的属性和方法将在子类中都有效,即使在子类中没有声明. 像以前提到过的,继承是非常强大的. 如果你想访问一个
-
PHP中的Iterator迭代对象属性详解
前言 foreach用法和之前的数组遍历是一样的,只不过这里遍历的key是属性名,value是属性值.在类外部遍历时,只能遍历到public属性的,因为其它的都是受保护的,类外部不可见. class HardDiskDrive { public $brand; public $color; public $cpu; public $workState; protected $memory; protected $hardDisk; private $price; public function
-
PHP简单遍历对象示例
本文实例讲述了PHP简单遍历对象的方法.分享给大家供大家参考,具体如下: 对象可以使用foreach进行遍历,只能遍历属性以及访问范围内的 <?php class bee{ public $a = 1; protected $b = 2; private $c = 3; } $obj = new bee(); foreach($obj as $key => $val){ echo $key.'-'.$val; } 运行结果如下: a-1 更多关于PHP相关内容感兴趣的读者可查看本站专题:<
-
PHP var_dump遍历对象属性的函数与应用代码
本文章下面我们要为你提供二种关于遍历对象属性方法,并且举例说明遍历对象属性在php中的应用.可以看出私有变量与静态变量时获取不到的,只有定义为公共变量才可以读出来. 遍历对象属性第一种方法: 复制代码 代码如下: <?php class foo { private $a; public $b = 1; public $c; private $d; static $e; public function test() { var_dump(get_object_vars($this)); } } $
随机推荐
- 详解mysql数据库中文乱码问题
- 超简陋浏览器
- HttpClient基础解析
- php实现的DateDiff和DateAdd时间函数代码分享
- 简化php模板页面中分页代码的解析
- php实现建立多层级目录的方法
- python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
- 光碟工具 Alcohol 120% v1.9.6.4719 下载(附序列号注册码)
- 浅谈Ajax相关及其优缺点
- python网页请求urllib2模块简单封装代码
- SQL语句实现查询Index使用状况
- EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
- 有趣的javascript数组定义方法
- Java排序方法sort用法详解
- C#中GraphicsPath的AddString方法用法实例
- C语言实现xml构造解析器
- python实战之实现excel读取、统计、写入的示例讲解
- IntelliJ IDEA 安装目录的核心文件的功能及用法
- 花花世界的和尚们 迅雷高速下载
- node.js实现带进度条的多文件上传