0

两个班:

class main()
{
 public function doAjob()
 {
  helperClass::clean();
 }
}

class helperClass()
{
 public function add() { }
 public function remove() { }
 public function clean() { } // **this should be only allowed from main::doAjob() !!!**
}

这些类的用户可以使用 doAjob()、add()、remove() 方法,但不能使用 clean()。这仅允许用于主类。它是 C++ 中的一种朋友。如何躲避它?最好的情况甚至不会通过代码竞赛看到它。

4

2 回答 2

1

你不能在 PHP 中做到这一点。没有“朋友”类的概念。如果您希望一个方法可以在类外部访问,它必须是public.

于 2012-05-10T12:24:20.653 回答
0

好吧,可能还有其他人阅读此内容:将它们公开,您可以backtrace()执行调用,并确定调用来自何处。不过,这会使应用程序变得异常缓慢,因此最好添加一种机制来启用/禁用。

于 2012-06-13T13:14:44.827 回答