PHP访问受保护的构造函数

时间:2010-10-28 20:43:10

标签: php constructor protected

我知道使用受保护的方法或构造函数非常罕见。我已在SO和其他网站上阅读过关于此的讨论。 我得到的任务相当简单。我必须从我的程序中访问受保护的方法/构造函数。必须将所有属性/方法声明为protected。

我的代码可以简化为此。我基本上被要求用最简单/最简单的方式做到这一点。我能想到的所有解决方案要么使用更先进的技术(“朋友”等),要么使用违反规则的公共功能。

谢谢。

     class one
        {
         protected $attribute1;
        }

        class two extends one
        {
         protected $attribute2;
         protected $attribute3;
            protected function __construct($arg1, $arg2, $arg3)  
         {
          $this->attribute1= $arg1;
          $this->attribute2= $arg2;
          $this->attribute3= $arg3;

            }
        }

$object = new two(" 1", "2", "3");

1 个答案:

答案 0 :(得分:3)

私有或受保护的构造函数的目的是防止类从类外部实例化。

您可以在返回新对象的类中创建一个公共静态函数,但如果您希望构造函数受到保护或私有,则无法直接创建它。您必须将某些内容声明为公共内容,否则您将无法使用该类。