这会动态声明属性:
class metadata {
function __construct($file) {
/* Argument: Array containing data of a single file */
while ($pointer = key($file)) {
$this->$pointer = current($file);
next($file);
}
}
}
我希望在while循环中声明的所有属性$this->$pointer
都是私有的。
如何在不设置长private $prop1, $prop2, $etc;
的情况下实现这一目标?
主要目的是保持代码简短。我写的可能有20个私有属性,我只是想知道我是否可以保存输入。
答案 0 :(得分:0)
您可以使用stdclass。这是官方链接,http://us1.php.net//manual/en/reserved.classes.php 喜欢,
class metadata {
function __construct($file) {
private $this->file_meta = new stdClass();
while ($pointer = key($file)) {
$this->file_meta->pointer = current($file);
next($file);
}
$this->file_meta->other_var = 'some value';
}
}