-1

我正在尝试将我的接口和实现分开。所以我有一堆功能可以执行各种任务。我最初将它们全部设为公开,然后我会从其他页面调用它们。我试图通过将所有真正的工作负载函数设为私有然后使用 1 个公共函数来调用它们来加强这一点。

这是我正在尝试的:

class TestClass
{

    public function pub1()
    {

       $this->test1();
       $this->test2();
       $this->test3();

    }

    private function test1()
        {

         $t1 = '1'; 

         return $t1

         }

    private function test2()
        {

         $t2 = '2'; 

         return $t2

         }

    private function test3()
        {

         $t3 = '3'; 

         return $t3

         }
}

我认为这可行,但我不知道如何调用这些函数。我可以很好地调用 pub1(),但我似乎无法调用 test1()、test2()、test3() 下面的函数。

如果我为公共到私人功能之一做一个,我可以完成这项工作,但我希望不必这样做。

对此的任何帮助都会很棒。

谢谢!

4

3 回答 3

3

您对 pub1() 的调用应该正确调用 test1()、test2() 和 test3(),就像您编写的那样。但是,您的测试函数返回一个值,然后您的 pub1() 函数将其丢弃。如果您实际上不需要将这些测试函数中的任何内容返回给调用者,那么您应该可以按原样进行。

于 2012-09-11T20:18:05.387 回答
2

你应该重新考虑你的设计。

对象与现实世界有很强的关系。把对象看成一个黑盒子,在外面看看你需要什么属性和方法。

所以:

  • 如果您想在类之外调用函数,请使用 public。
  • 如果要在类或派生类中调用函数,请使用 protected。
  • 如果您只想在类中调用函数,请使用 private。

如果您有接口,请定义它!并让一个类实现它。

于 2012-09-11T20:16:37.423 回答
-4

也许是这样的?

public function pub1 ($name) {
    return $this->$name();
}
于 2012-09-11T20:16:26.353 回答