吸气剂是否可以阻止公共物业变更?

时间:2012-02-10 20:01:51

标签: php getter

  

可能重复:
  PHP Readonly Properties?

我希望公开显示一个属性:

echo $object->prop;

但我不想修改。

除了使用__get

之外,还有其他选择可以实现这一目标吗?

2 个答案:

答案 0 :(得分:0)

我能想到的其他方式:

  1. 使用__set()功能并忽略该设置。
  2. 根本不要使用该变量,而是创建一个getVal()函数,而不是setVal()函数。
  3. 希望这会有所帮助:)

答案 1 :(得分:0)

  

除了使用__get?

之外,还有其他选择可以实现吗?

不,但有功能请求:https://bugs.php.net/bug.php?id=46506因此您可以投票支持它的重要性,并希望这将在不久的将来得到解决。

但是我不认为它会在不久的将来,因为这个功能会产生很多混乱,比如存储在属性中的对象 - 它们只是对象的引用,所以让它们可见让你可以操作它的方法/属性。

至于现在,为每个属性创建适当的getter,你想要只读,似乎是最好的解决方案。