php obj属性可访问性在类之外不可写但在类之外可读

时间:2011-04-28 00:46:05

标签: php

我不想让类示例的属性只能被它的子进程访问,但是我希望这些子进程能够从最初的__construct中更改它们。这就是我目前设置的方式。我能以更好的方式做到这一点吗?

class example{
    private $x
    protected function __construct($x){
        setX($x);
    }
    private function setX($x){
        $this->x = $x;
    }
    protected function getX{
        return $this->x;
    }
}

2 个答案:

答案 0 :(得分:0)

我是否正确理解您只希望$ x可以被孩子读取(但不可编辑)?

然后是你的类定义看起来没问题(虽然语法错误)。

儿童不能访问私人会员,只能受到保护(以及公共,durhur)。

答案 1 :(得分:0)

你是说你想在函数之外使用那个getter / setter,就像这样?

$a = new Example(5);
$a->setX(25);

echo $a->getX();

如果是,您需要将它们设置为公共函数:

class Example{
    private $x
    protected function __construct($x){
        setX($x);
    }
    public function setX($x){
        $this->x = $x;
    }
    public function getX{
        return $this->x;
    }
}

PS:将你的班级名称大写是一个很好的实践。