PHP наследование массива-свойства

Задача

Имеется класс A с защищённым свойством $data, которое является массивом. В массив записан список значений. Необходимо создать класс B, который будет наследовать класс A и расширять список значений свойства $data.

Решение

class A
{
    protected $data = [
        'one',
        'two',
        'three'
    ];
    public function getData()
    {
        print "<pre>";
        print_r($this->data);
        print "</pre>";
    }
}

class B extends A
{
    public function __construct()
    {
        $this->data = array_merge(
            $this->data, 
            ['four', 'five']
        );
    }
}

$b = new B();
$b->getData();

// Output:
// Array
// (
//     [0] => one
//     [1] => two
//     [2] => three
//     [3] => four
//     [4] => five
// )    

Похожие записи

Отладка PHP в Visual Studio Code и OpenServer

Visual Studio Code - отличный бесплатный редактор кода, который в определенных ситуациях, заменяет IDE. В частности VS Code можно использовать как альтернативу PHPStorm. По умолчанию, VS Code предоставляет статический анализатор кода. В этом посте показана настройка отладчика PHP для Visual Studio Code в среде с набором инструментов разработчика OpenServer.

Кратко о внедрение зависимостей и сервис контейнере

Cтатья о том, что такое "Внедрение зависимостей" и "Сервис-контейнер" отталкиваясь от их реализации в PHP фреймворках. Статья написана по мотивам статей Фабьена Потенсье, ведущиго разработчика и идеолога фреймворка Symfony, а также документации фреймворка Laravel.

Об автозагрузке в PHP

Статья раскрывает аспекты автозагрузки в PHP с использованием __autoload, spl_autoload_register, автозагрузки через composer (PSR-4) с небольшим экскурсом в историю.

01 декабря 2017 г. в PHP