是否可以将方法属性从公共更改为私有,并从内部类中返回运行时?

rsk*_*k82 0 php oop methods properties

像这样:if($ sth)make_private($ this-> method);

或者可能有其他方法来影响方法的可访问性?

问题是我编写了一个必须调用一次方法的类,所以我需要代码在执行此方法后限制从类外部访问给定方法.

Wri*_*ken 5

你有几个更好的选择:

  1. 在类本身中使用一些静态变量处理'只能被调用一次',并抛出清晰的异常.
  2. 如果您无法更改类/对象本身,请使用装饰器对象处理'只能被调用一次'.

您建议的非常不受欢迎的方式是可能的,请参阅classkit_method_redefinerunkit_method_redefine,但代表将来可能处理您的代码的任何人:请不要使用它.