PHP在声明属性时将属性设为私有

时间:2014-06-21 15:53:14

标签: php oop

这会动态声明属性:

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个私有属性,我只是想知道我是否可以保存输入。

1 个答案:

答案 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'; 
    }
}