Получить даные в классе из вне

Тема в разделе "PHP", создана пользователем designf, 19 окт 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. designf

    designf Постоялец

    Регистр.:
    24 май 2009
    Сообщения:
    105
    Симпатии:
    16
    У меня есть класс.
    В классе есть функция которая получает данные из конфигурационного файла. Для этого подключает этот файл:

    PHP:
    public function __mydata($vData 0)
        {
            require_once 
    'config_data.php';
                    
    $this->_cdata $myPerem;
    Т.е. он считал с конфига переменную $myPerem;

    Когда скрипт работает отдельно, все отлично. Но дело в том что файл конфига нужно подключать не в классе, т.к. он используется в целом и для других настроек.

    Т.е.

    PHP:
    require_once 'config_data.php';
    По идеи не должно быть, он должен подключится в основном скрипте. А как мне тогда передать переменные в этот класс из этого файла.

    Переменных много, поэтому использовать типа

    new myClass ($p1,$p2, ..., $pn) - не хочется.

    Есть способы? Пробовал объявить глобальные переменные в функции - не помогло.
     
  2. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    можно в начале скрипта обьявить переменные как константы через define
    http://php.net/manual/en/function.define.php
    или когда надо обновить переменные для класса
    $myclass = new MyClass();
    $myclass->_cdata = "новое значение";
    $myclass->run();
    $myclass->_cdata = "новое значение2";
    $myclass->run();
     
    designf нравится это.
  3. designf

    designf Постоялец

    Регистр.:
    24 май 2009
    Сообщения:
    105
    Симпатии:
    16
    наверное нужно пробывать первый вариантр, второй не подходит.
     
  4. tlittle

    tlittle Постоялец

    Регистр.:
    26 мар 2009
    Сообщения:
    74
    Симпатии:
    13
    A что мешает сделать не require_once, а просто require? Ну подключится файл с обяъвлением переменных внутри класса второй раз, да и бог с ним.

    ЗЫ. А вообще, я бы объявил переменные конфигурации глобальными или константами, а то изврат какой-то получается. Каждую переменную отдельно выдирать в класс... бррр.
     
  5. designf

    designf Постоялец

    Регистр.:
    24 май 2009
    Сообщения:
    105
    Симпатии:
    16
    А как объявить? Через define?

    Добавлено через 12 минут
    define - только string, а мне нужно и числа передать в класс.
     
  6. Greg1978

    Greg1978 Создатель

    Регистр.:
    13 окт 2009
    Сообщения:
    10
    Симпатии:
    1
    Для переменных, которые используются во многих классах сделать массив и передавать его в обьект.
    А вообще можно сделать конфиг сам обьектом и вызывать переменную через метод _get() появляется возможность для обработки переменной, допустим проверка её существования.
     
Статус темы:
Закрыта.