【问题标题】:Programmatically change variable from public to private以编程方式将变量从公共更改为私有
【发布时间】:2011-03-11 14:45:36
【问题描述】:

我是否可以在类的函数调用中以编程方式将变量从公共更改为私有?

【问题讨论】:

  • 您为什么要这样做?使用 setter 和 getter。
  • 我正在使用 getter/setter,但它是在现有系统上实现的,但我想打破 $object->var 的功能,最好通过 $fields 的简单循环用于确定 getter/setter 的数组
  • 您是否正在寻找创建状态未知的 Heisen 属性?
  • 反射 (ReflectionProperty::setAccessible) 是可能的,但正如上面的 abloodywar 所说:你可能想先考虑替代方案,这不是一个很好的做法。

标签: php


【解决方案1】:

不,不可能将变量从公共更改为私有。

【讨论】:

    【解决方案2】:

    使用访问修饰符(setter、getter)并将私有属性设置为公共属性。

    您无法更改属性的可见性。

    【讨论】:

    • 对于最新的 PHP 版本,您可以使用反射。并不是说它是可取的:) 我只在单元测试期间使用它来临时读取框架或其他东西的属性值。
    • 假的,你可以。参见反射手册:php.net/manual/en/book.reflection.php
    猜你喜欢
    • 2021-07-07
    • 1970-01-01
    • 2014-03-30
    • 2013-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    相关资源
    最近更新 更多