0

2 つのクラス:

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 に答える