php中的foreach()非常强大,不仅仅可以遍历数组,而且可以遍历对象。关于对象,可以看如下实例。
class A{
public $a= 'a';
public $b= 'b';
private $c='cc';
protected $d="ddd";
//常量和方法都不能被遍历出来
const PI = 3.14;
public function test(){
echo 'test';
}
}
$a = new A;
var_dump($a);
echo '
';
//foreach遍历不出来private和protected的
foreach ($a as $k=>$v) {
echo $k.'===========>'.$v.'
';
}
echo '
';
//print_r能遍历出来private和protected的
print_r($a);
/**
打出的结果如下:
object(A)#1 (4) { ["a"]=> string(1) "a" ["b"]=> string(1) "b" ["c:private"]=> string(2) "cc" ["d:protected"]=> string(3) "ddd" }
--------------------------------------------------------------------------------
a===========>a
b===========>b
--------------------------------------------------------------------------------
A Object ( [a] => a [b] => b [c:private] => cc [d:protected] => ddd )
*/
可以看到,很多时候跟想的不同,特此记录一下,以供以后自己分析使用。