Один метод, для нескольких свойств объекта

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
MaxVM
Сообщения: 69
Зарегистрирован: Вт янв 10, 2017 2:26 pm
Благодарил (а): 8 раз
Поблагодарили: 0

Один метод, для нескольких свойств объекта

Сообщение MaxVM » Сб дек 22, 2018 10:57 pm

Добрый вечер, уважаемые!
Суть проблемы в следующем
Структура Несколько одинаковых домов (класс Doma), в нем подкласс (1Dom, 2Dom, 3Dom). В классе Doma добавлено свойство средняя температура в доме (SredTemp), сделан метод (SredTemp) для первого дома (1Dom) (пока так криво, но вроде работает)

Код: Выделить всё

$tempR0 = getGlobal("1dom.TempR0");
$tempR1 = getGlobal("1dom.TempR1");
$tempR2 = getGlobal("1dom.TempR2");
$tempR3 = getGlobal("1dom.TempR3");
$tempB1 = getGlobal("1dom.TempB1");

$arr [] = $tempR0;
$arr [] = $tempR1;
$arr [] = $tempR2;
$arr [] = $tempR3;
$arr [] = $tempB1;

$result = count ($arr);
$summ = array_sum ($arr) . "\n";

$itog = $summ / $result;
$itog = round($itog,2);
sg ("1dom.TempSred0", $itog);
Как правильно модифицировать код, чтобы при добавлении этого метода ко второму дому подставлялись правильные значения, для объекта 2Dom или 3Dom. Как написать такой универсальный метод, или я просто мыслю криво.
Задача во всех домах использовать один и тот-же метод при изменении одного свойства в массиве.

Спасибо, я только учусь!
Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Один метод, для нескольких свойств объекта

Сообщение xor » Сб дек 22, 2018 11:14 pm

MaxVM
Сообщения: 69
Зарегистрирован: Вт янв 10, 2017 2:26 pm
Благодарил (а): 8 раз
Поблагодарили: 0

Re: Один метод, для нескольких свойств объекта

Сообщение MaxVM » Пн дек 24, 2018 10:48 pm

Спасибо, получилось.
А можно ли отобрать все свойства одного объекта по части имени.
Например
1dom.temp1
1dom.temp2
1dom.temp3
1dom.hum1
Как отобрать все свойства с temp без учёта начала и конца, и загнать в переменные?

Спасибо.

Отправлено с моего Redmi 5 Plus через Tapatalk

Аватара пользователя
xor
Сообщения: 2038
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 284 раза
Поблагодарили: 629 раз

Re: Один метод, для нескольких свойств объекта

Сообщение xor » Пн дек 24, 2018 11:03 pm

кхм, Спасибо писать не обязательно, достаточно нажать на кнопку Палец вверх. (это будет маленьким стимулом для отвечающего)

По поводу вопроса об однотипных свойствах - мне кажется, что это можно сделать селектом к базе - по объекту вытянуть все его свойства и, перебирая их названия, отбирать нужные(

Вот если бы были однотипные объекты - скажем, датчики температуры - типа, датчик_т0,дт1, ...,датчик_температуры8 - у которых было бы свойство temp, где хранится значение температуры, то их было бы легко обработать с помощью встроенной функции:
getObjectsByProperty($property_name,$condition='',$condition_value=''); – она возвращает массив названий объектов, имеющих свойство $property_name. опционально можно задать условие, под которое попадает значение. Условия могут быть == (или =), >=, >, <=, <, <> (или !=)
напр. getObjectsByProperty('temp') - даст вам массив ваших датчиков температуры, которые можно в цикле обрабатывать.
За это сообщение автора xor поблагодарил:
MaxVM (Вт дек 25, 2018 8:11 am)
Рейтинг: 1.16%
Ответить