PHP получает доступ к защищенному конструктору - PullRequest
0 голосов
/ 29 октября 2010

Я знаю, что очень редко используются защищенные методы или конструкторы.Я читал обсуждения об этом на SO и других сайтах.У меня довольно простая задача.Я должен получить доступ к защищенным методам / конструкторам из моей программы.Все атрибуты / методы должны быть объявлены как защищенные.

Мой код может быть уменьшен до этого.Меня в основном просят сделать это самым простым / простым способом.Все решения, которые я могу придумать, используют более продвинутую технику («друзья» и т. Д.) Или публичную функцию, которая противоречит правилам.

Спасибо.

     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 Ответ

3 голосов
/ 29 октября 2010

Целью частного или защищенного конструктора является предотвращение создания экземпляра класса извне класса.

Вы можете создать открытую статическую функцию в классе, которая возвращает новый объект, но вы не можетесоздайте его напрямую, если вы хотите, чтобы конструктор был защищенным или закрытым.У вас должно быть что-то объявлено как общедоступное, или вы не можете использовать класс.

...