[Сценарий] Как "красиво" организовать перебор объектов класса?

Не требует установки программ или изменения файлов

Модераторы: immortal, newz20

Ответить
raptorialfungus
Сообщения: 75
Зарегистрирован: Чт ноя 29, 2012 4:13 pm
Благодарил (а): 0
Поблагодарили: 9 раз

[Сценарий] Как "красиво" организовать перебор объектов класса?

Сообщение raptorialfungus » Ср дек 12, 2012 11:57 am

Собственно, subject.

Нужен сценарий с циклом по объектам класса с проверкой некоторых свойств и выполнением действий в зависимости от значения. Может уже есть какие-то встроенные функции? Или нужно писать SQLSelect'ы к objects,pvalues?

Андрей
Андрей
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Как "красиво" организовать перебор объектов класса?

Сообщение Alex » Ср дек 12, 2012 12:21 pm

Во-во. У меня уже 20 объектов с 20 (примерно) свойствами каждый. Проверки выливаются в километровые листинги скриптов с одними и теми же действиями для каждого объекта и каждого свойства.
Аватара пользователя
sergejey
Site Admin
Сообщения: 4284
Зарегистрирован: Пн сен 05, 2011 6:48 pm
Откуда: Минск, Беларусь
Благодарил (а): 75 раз
Поблагодарили: 1559 раз
Контактная информация:

Re: Как "красиво" организовать перебор объектов класса?

Сообщение sergejey » Ср дек 12, 2012 1:51 pm

Есть встроенная функция getObjectsByClass("className"), которая возвращает массив имён объектов определённого класса.

$objects=getObjectsByClass("className");
$total=count($objects);
for ($i=0;$i<$total;$i++) {
$data=getGlobal($objects[$i]['TITLE'].'.propertyName');
}

вот как-то так можно попробовать.
За это сообщение автора sergejey поблагодарил:
Bagir (Вс авг 24, 2014 11:50 am)
Рейтинг: 1.16%

Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги
raptorialfungus
Сообщения: 75
Зарегистрирован: Чт ноя 29, 2012 4:13 pm
Благодарил (а): 0
Поблагодарили: 9 раз

Re: Как "красиво" организовать перебор объектов класса?

Сообщение raptorialfungus » Ср дек 12, 2012 2:15 pm

sergejey писал(а):Есть встроенная функция getObjectsByClass("className"), которая возвращает массив имён объектов определённого класса.
Отлично, спасибо.

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

$objects=getObjectsByClass("MobilePhone");
$total=count($objects);
for ($i=0;$i<$total;$i++) {
$balance=getGlobal($objects[$i]['TITLE'].'.balance');
$monitor=getGlobal($objects[$i]['TITLE'].'.monitor');
$name=getGlobal($objects[$i]['TITLE'].'.name');
if (($balance<50)and($monitor))
  {
  say("Баланс мобильного телефона \"".$name."\" меньше 50 рублей (".$balance.")");
  }
}
Андрей
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: Как "красиво" организовать перебор объектов класса?

Сообщение Alex » Ср дек 12, 2012 2:44 pm

«Пошел изучать». :)
Ответить