PHP公共函数,调用多个私有函数

时间:2012-09-11 20:12:53

标签: php

我正在尝试分离我的界面和实现。所以我有一堆执行各种任务的函数。我最初将它们全部公之于众,然后我会从其他页面调用它们。我试图通过将所有实际工作负载函数设置为私有,然后使用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()下面的函数。

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

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

谢谢!

3 个答案:

答案 0 :(得分:3)

对pub1()的调用应正确调用test1(),test2()和test3()。但是,您的测试函数返回一个值,然后您的pub1()函数将丢弃。如果你不需要实际将任何东西从那些测试函数返回给调用者,那么你应该没问题。

答案 1 :(得分:2)

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

物体与现实世界有很强的关系。将对象看作黑框,并查看外部需要的属性和方法。

所以:

  • 如果你想调用一个类以外的函数,请使用public。
  • 如果要在类或派生类中调用函数,请使用protected。
  • 如果您只想在课堂内调用某个函数,请使用private。

如果您有界面,请定义它!让一个类实现它。

答案 2 :(得分:-4)

也许是这样的?

public function pub1 ($name) {
    return $this->$name();
}