對(duì)象遍歷
對(duì)象也可以使用foreach語(yǔ)句進(jìn)行遍歷,有2點(diǎn)注意:
- 只能遍歷屬性
- 屬性的訪問(wèn)權(quán)限,若想不關(guān)注權(quán)限問(wèn)題,可以將遍歷寫在類內(nèi)部的遍歷方法中。
<?php
class A{
public $a1 = 1;
protected $a2 = 5;
private $a3 = 3;
//遍歷所有屬性
function fetchAllProp(){
//遍歷時(shí)key取得屬性名,value取得對(duì)應(yīng)值
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'));
?>
打印結(jié)果
內(nèi)置標(biāo)準(zhǔn)類
<?php
//內(nèi)置標(biāo)準(zhǔn)類
$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);
?>
打印結(jié)果
從打印結(jié)果不難發(fā)現(xiàn),內(nèi)置標(biāo)準(zhǔn)類的中屬性可以動(dòng)態(tài)添加,類似于js。