Наследование массива в классе

Maestr0

Новичок
Уже устал искать в тырнете.
Подскажите как можно дополнить свойство класса, которое есть массив новыми элементами.
Мне нужно без использования конструктора.
Приведу пример:
PHP:
class first {
    protected $myArray = array( 'один', 'два', 'три' );
  
    function somrFunction() {
      // in this place must be some important PHP code
    }
  }

  class second extends first {
      $this->myArray[] = 'четыре';
  }
понятно что конструкция типа $this->myArray[] = 'четыре'; в том месте работать не будет,
но она явно отображает суть вопроса. Мне нужно дополнить унаследованный массив новыми значениями, не теряя при этом старых. Можно ли это сделать прямо в описании подкласса ? Не используя конструкторов и пр. ?
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
а в чем проблема то?
PHP:
class second extends first {
    public function __construct(){
        $this->myArray[] = 'четыре';
    }
}
 

Kotofey

FloodMaster.
Она отображает уровень твоих знаний, а не суть вопроса.
Приватные проперти не наследуются. Сделай одолжение, побейся лбом об стену самостоятельно, после чего иди перечитывать http://php.net/OOP
Прости, но я никак не могу понять, почему protected не наследуется? private - да, знаю , не наследуются , но в коде вопроса явно
PHP:
 protected $myArray = array( 'один', 'два', 'три' );
используется...
 

WMix

герр M:)ller
Партнер клуба
Kotofey, я сказал бы что и private наследуется, вопрос лишь в области видимости/доступности.

PHP:
class A {
  private $_v = array(1, 2, 3);
}
class B extends A {}

print_r(new B());
 

Vital7

Новичок
PHP:
    class First {
        protected $myArray = array("один", "два", "три");
    }
   
    class Second extends First {
        public function __construct() {
            $this->myArray[] = "четыре";
        }
       
        public function getMyArray() {
            return $this->myArray;
        }
    }
    $second = new Second();
    print_r($second->getMyArray());
Вот, в порядке работает же. Почему не хочешь конструктором воспользоваться?
 
Сверху