Классы, объекты, свойства и их значения

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

Модератор: immortal

Ответить
Аватара пользователя
Amarok
Сообщения: 1425
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 460 раз
Поблагодарили: 126 раз
Контактная информация:

Классы, объекты, свойства и их значения

Сообщение Amarok » Пн дек 23, 2013 6:44 am

Создан у меня, к примеру, класс люди и в нем несколько объектов. Например: жена, сестра, мама, папа. У каждого объекта есть свойство. Например: телефон, еmail, присутствие. Возник вопрос: а как красиво перебрать значение свойства всех объектов?
К примеру сейчас условие невыключения света выглядит так:

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

if (($h==22 and $m=="00")) {
  if (getGlobal('Kitsune.here') != "1" ){
    runScript("AmarokLampOff",array("auto"=>1));
   }
}
Если захочу добавить ещё человека при котором свет выключать не надо, то придётся писать нечто типа такого:

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

if (getGlobal('Kitsune.here') != "1" or getGlobal('Amarok.here') != "1")
Не эстетично ведь...
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 140 раз
Контактная информация:

Re: Классы, объекты, свойства и их значения

Сообщение ErmolenkoM » Пн дек 23, 2013 7:54 am

BlackWarrior писал(а): а как красиво перебрать значение свойства всех объектов класса
http://smartliving.ru/Main/ProgrammingFunctions

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

Пример перебора объектов в цикле и установки значения свойств:
$objects=getObjectsByClass("class_name");
foreach($objects as $obj) {
 setGlobal($obj['TITLE'].".property_name",1);
}
Для задачи о людях и условиях включения света.
Делаем так:
1. При изменении статуса человека меняем статус системы. Метод лучше положить в класс, дабы не плодить у каждого объекта.
2. Скрипт включения света анализирует статус системы.
3. Профит.
aka msh555
Cubian на Cubietruck, Connect
Ответить