PHP中的对象遍历和内置标准类
2017-03-18 本文已影响103人
kangyiii
对象遍历
对象也可以使用foreach语句进行遍历,有2点注意:
- 只能遍历属性
- 属性的访问权限,若想不关注权限问题,可以将遍历写在类内部的遍历方法中。
<?php
class A{
public $a1 = 1;
protected $a2 = 5;
private $a3 = 3;
//遍历所有属性
function fetchAllProp(){
//遍历时key取得属性名,value取得对应值
foreach ($this as $key => $value) {
echo "<br/> 属性:$key = $value";
}
}
//只遍历想要的属性
function fetchSomeProp($arr){
foreach ($this as $key => $value) {
if(in_array($key,$arr)){
echo "<br/> 属性:$key = $value";
}
}
}
}
$o1 = new A();
$o1->fetchAllProp();
echo "<hr/>";
$o1->fetchSomeProp(array('a1','a2'));
?>
打印结果
内置标准类
<?php
//内置标准类
$o1 = new stdclass();
$o1->prop1 = 1;
$o1->pp2 = 22;
echo "<br/>o1->prop1:".$o1->prop1;
echo "<br/>o1->pp2:".$o1->pp2;
echo "<br/>";
var_dump($o1);
?>
打印结果
从打印结果不难发现,内置标准类的中属性可以动态添加,类似于js。