Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
6 / 6 / 0
Регистрация: 16.09.2010
Сообщений: 85

переменную глобально

29.08.2011, 18:18. Показов 920. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет!
У меня вот вопрос.. Каким образом можно правильно использовать переменные которые нужны в других классах, методах?
Например, у меня есть код
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Data{
    public $var;
}
 
$data = new Data();
 
class My1{
    function method(){
        return $data->var;//использование переменной data
    }
}
class My2{
    function method2(){
        return $data->var;//использование переменной data
    }
}
$my1 = new My1();
$my2 = new My2();
$my1->method();
$my2->method2();
я создаю объект Data, как сделать что бы он был доступен во всех методах других классов? Не передавать его же в конструктор для каждого объекта?
я хочу чтобы переменная $data была доступна во всех инклудах и остальном коде после инициализации $data.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.08.2011, 18:18
Ответы с готовыми решениями:

Глобально запомнить переменную
Здравствуйте! Делаю запрос к базе, вывожу все статьи Сделал 2 кнопки(Удалить и редактировать) При нажатии на...

PHPUnit глобально в PHPStorm
Хочется работать с PHPUnit глобально, чтобы не устанавливать в каждый проект отдельно. В настройках PHPStorm Проверяю через...

Назначить $var глобально через include внутри function()
Собственно в теме вопрос указан, но для "воды" разжую... Хочу сделать(восстановить) функцию принимающая(1 параметр: $path) результатом...

8
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
29.08.2011, 18:23
Если у Вас только один экземпляр класса Data и кроме var в нем больше ничего нет и не будет, то можно обойтись статической переменной класса.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Data{
    public static $var;
}
 
class My1{
    function method(){
        return Data::$var;
    }
}
class My2{
    function method2(){
        return Data::$var;
    }
}
1
6 / 6 / 0
Регистрация: 16.09.2010
Сообщений: 85
29.08.2011, 18:31  [ТС]
он у меня не один, это объект объектов:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Data
{
    private $data = array();
    function __set ($name, $value)
    {
        $this->data[$name] = $value;
    }
    function __get ($name)
    {
        if (isset($this->data[$name])) {
            if (is_object($this->data[$name])) {
                return $this->data[$name];
            } else {
                return $this->data[$name];
            }
        }
    }
    function create ($name)
    {
        $this->data[$name] = new Data();
    }
}
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
29.08.2011, 18:34
Цитата Сообщение от kolorimage Посмотреть сообщение
он у меня не один, это объект объектов:
Ну, опять же, если он сам в единственном экземпляре, то singleton'ом его можно сделать. А если не один, то уж точно в конструкторы передавать придется.
1
6 / 6 / 0
Регистрация: 16.09.2010
Сообщений: 85
29.08.2011, 18:37  [ТС]
нельзя синглтоном. И что больше путей нет?
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
29.08.2011, 18:40
Цитата Сообщение от kolorimage Посмотреть сообщение
И что больше путей нет?
А как Вы себе это представляете? Ладно он там один штука был. А если их много, то кому какой нужен?
1
6 / 6 / 0
Регистрация: 16.09.2010
Сообщений: 85
29.08.2011, 22:42  [ТС]
ну у меня переменная же одна $data а внутри объект, в котором может быть много тех же объектов Data.
мне нужно сделать переменную глобальную.. Но регистр глобалс это же зло, правильно?

Добавлено через 56 минут
хм.. а можно ведь создать класс со статическим методом, который будет возвращать весь объект Data.. типа создать синглтон в котором мой объект с данными находиться.
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
30.08.2011, 14:14
kolorimage, Может, тогда для корневого Data создать отдельный класс-наследник и его уже сделать singleton'ом?
1
6 / 6 / 0
Регистрация: 16.09.2010
Сообщений: 85
30.08.2011, 14:52  [ТС]
Можно . Спасибо за ответы!
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.08.2011, 14:52
Помогаю со студенческими работами здесь

Как лучше всего сделать объект видимым глобально?
Иногда, нам нужно иметь переменную или объект доступный из любого места. Например, соединение с БД. $mysqli = new...

Как вставить переменную java скрипт в php переменную
Здравия, форумчане! Извиняюсь за некорректность заголовка... Подскажите новичку, есть ли возможность перенести содержимое переменной java...

Как сохранить в переменную другую переменную + текст?
Нужно сохранить в одной переменной несколько переменных + текст, что бы потом все это дело вывести на экран. Т.е., что то в роде: ...

Как вставить в переменную текст и переменную вместе?
Вопрос для бывалых программистов наверное простой, но не где пока не нашел ответа. Подскажите пожалуйста как мне в переменную допустим...

Переменную из цикла в js записать в переменную php
Есть цикл на JS for (glavnoe = 0;glavnoe<=3;glavnoe++){ код js код php } нужно,в переменную $n вписать значение glavnoeкаждый...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru