2016-11-20 3 views
0

Я пытаюсь получить доступ к переменной из собрата инициатора текущего класса, как вы можете видеть пример прототипа, который не работает:Доступ к переменной из другого класса

class webConfig { 
    public function __construct() { 
    $this->settings = new settings(); 
    $this->conf = new conf(); 
    $this->info = new info(); 
    } 
} 

class settings { 
    public function setInfo() { 

    return parent::conf->info; 

    } 
} 

class conf { 
    public function __construct() { 

    $this->info = "10"; 

    } 
} 

Есть ли способ может получить доступ к переменной от conf класс в настройках-> функция setInfo()?

+0

Классы должны «расширять» другие, чтобы иметь возможность доступа к своим внутренним элементам. Что ты пытаешься сделать? –

+0

У меня уже есть мой оригинальный код, но он используется для чего-то другого. У меня есть класс, который содержит даты истечения срока подписки, и еще один класс, который проверяет, активна ли подписка, но чтобы проверить, что ему потребуется доступ к другому классу с датами подписки. – Coder

+0

Код «слишком» грязный. во всяком случае, вы должны «расширять» классы, чтобы наследовать их родителей. 'class Setting extends Config {...}', тогда у вас будет '$ this-> info' в вашем распоряжении, если вы вызвали конструктор' Config', например. в вашем классе 'Настройки' есть' public function __construct() {parent :: __ constructor(); ...} ' – Cunning

ответ

1

Из ваших примеров кода не ясно, чего вы собираетесь достичь, но вот общие шаги для решения проблем в PHP OOP.

  1. Переменные, объявленные под классом, называются свойствами (или полями).
  2. Заявить их и сделать их частными или защищенными. Более подробную информацию об этом можно найти в документах PHP: http://php.net/manual/en/language.oop5.visibility.php
  3. Добавить геттеры и сеттеры для ваших объектов (getProperty()/setProperty($value)).
  4. Использовать наследование PHP OOP. Более подробную информацию можно найти в документах PHP: http://php.net/manual/en/language.oop5.inheritance.php
Смежные вопросы