【发布时间】:2019-07-27 21:14:12
【问题描述】:
我知道对对象的迭代等于对类的可见属性进行迭代。
class MyClass
{
public $var1 = 'value 1';
public $var2 = 'value 2';
public $var3 = 'value 3';
protected $protected = 'protected var';
private $private = 'private var';
}
$class = new MyClass();
foreach($class as $key => $value) {
print "$key => $value\n"; // print all visible attributes
}
我很想知道为什么对未实现任何接口的对象进行迭代会导致对其可见变量进行迭代?这种能力的用例是什么?
【问题讨论】:
-
您具体说的是什么功能?从您的问题中似乎不清楚。
-
不确定上面的代码是否会像你期望的那样工作。
-
@AnuragSrivastava 为什么不试试呢?
-
@Script47我的意思是为什么迭代一个没有实现任何接口的对象会导致迭代它的可见变量
-
对象是属性和方法的集合。内置控制结构
foreach允许您迭代数组项,以及对象中的可见属性和内置功能。这与您的问题stackoverflow.com/questions/10057671/… 有关
标签: php oop php-internals