【发布时间】:2011-03-18 01:05:14
【问题描述】:
像这样: if ($sth) make_private($this->method);
或者可能有其他方式影响方法的可访问性?
问题是我写了一个类,其中方法必须调用一次,所以我需要代码来限制在执行此方法后从类外部访问给定方法。
【问题讨论】:
标签: php oop properties methods
像这样: if ($sth) make_private($this->method);
或者可能有其他方式影响方法的可访问性?
问题是我写了一个类,其中方法必须调用一次,所以我需要代码来限制在执行此方法后从类外部访问给定方法。
【问题讨论】:
标签: php oop properties methods
在方法中执行此操作的简单方法(仅限一次调用):
public function fooBar() {
static $called;
if (isset($called)) throw new Exception('Called already once!');
$called = true;
// your code
}
【讨论】:
您有几个更好的选择:
您建议的非常不受欢迎的方式是可能的,请参阅 classkit_method_redefine 或 runkit_method_redefine,但代表将来可能在您的代码上工作的任何人:请不要使用它。
【讨论】: