Как в одном методе сделать несколько действий?
Модератор: immortal
-
- Сообщения: 78
- Зарегистрирован: Вс дек 25, 2016 1:46 pm
- Благодарил (а): 7 раз
- Поблагодарили: 4 раза
Как в одном методе сделать несколько действий?
Банальный вопрос. Имеется строка
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
callMethod () , как в неё вписать , что бы выполнить 3 действия switch1.turnOn switch2.turnOn и switch3.turnOn ?
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: Как в одном методе сделать несколько действий?
Спасибо нам ПОМОЖЕТ..!
-
- Сообщения: 78
- Зарегистрирован: Вс дек 25, 2016 1:46 pm
- Благодарил (а): 7 раз
- Поблагодарили: 4 раза
Re: Как в одном методе сделать несколько действий?
Ничего не нашел по моему вопросуtarasfrompir писал(а): ↑Пт окт 16, 2020 7:47 pmБанальный ответ - читай базу знаний
https://kb.mjdm.ru/
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: Как в одном методе сделать несколько действий?
в коде нужного вам метода вписать типа такого
callMethod('switch1.turnOn');
Или я не понимаю вопроса ???
callMethod('switch1.turnOn');
Или я не понимаю вопроса ???
Спасибо нам ПОМОЖЕТ..!
- Nail
- Сообщения: 373
- Зарегистрирован: Пн мар 05, 2018 7:09 am
- Откуда: Самара
- Благодарил (а): 174 раза
- Поблагодарили: 28 раз
Re: Как в одном методе сделать несколько действий?
По моему это больше похоже на сценарий, в котором как чуть выше описано перечислить все реле по списку, через запятую.
Mini AMD A6 1450 Quad-core.Ubuntu Server 18.04 (64-bit). MegaD. Zigbee2mqtt+SLS ZigBee Gateway. Broadlink.
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: Как в одном методе сделать несколько действий?
ты будеш удивлен - но сценарий, метод, событие , процессабскриптион , райзевент, и все остальное пишется на пхп. Иестьопределенный набор фУНКЦИЙ В МДМ. Поэтому что лоб ему, что по лбу все едино
Спасибо нам ПОМОЖЕТ..!
-
- Сообщения: 1553
- Зарегистрирован: Сб янв 13, 2018 5:00 pm
- Благодарил (а): 39 раз
- Поблагодарили: 574 раза
Re: Как в одном методе сделать несколько действий?
Смешались в кучу люди, кони... Из того, что А и Б - буквы, совершенно не следует, что они одинаковы...tarasfrompir писал(а): ↑Пт окт 16, 2020 9:38 pmты будеш удивлен - но сценарий, метод, событие , процессабскриптион , райзевент, и все остальное пишется на пхп. Иестьопределенный набор фУНКЦИЙ В МДМ. Поэтому что лоб ему, что по лбу все едино
Методы это действия совершаемые с объектом. Нельзя одним методом совершить действия с разными объектами. Правильных пути 2 - написать сценарий, который будет вызывать 3 метода, либо объединить 3 объекта в один объект и уже в коде метода этого группового объекта выполнять методы объектов в него входящих.
Сценарий - это набор команд, ветвлений и циклов. Да, в нём можно вызывать метод, но сам по себе это не метод и не событие
Событие это что-то случающееся при каком-то условии. Да, при совершении события можно вызвать метод или сценарий, но событие от этого не становится ни методом, ни сценарием
Подписка на событие это запрос, чтобы нас ставили в известность, когда событие произойдёт. И опять же - это ни событие, ни метод, ни сценарий.
-
- Сообщения: 2079
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: Как в одном методе сделать несколько действий?
https://mjdm.ru/forum/viewtopic.php?f=4 ... %B5#p58927
и еще куча примеров на форуме, можно и в три строки, т.е. три раза выполнить вызов нужных методов без перебора их в цикле
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
- tarasfrompir
- Сообщения: 3216
- Зарегистрирован: Ср мар 02, 2016 8:18 pm
- Откуда: Украина Пирятин
- Благодарил (а): 223 раза
- Поблагодарили: 815 раз
Re: Как в одном методе сделать несколько действий?
а мое предложение на 1 строку корочеLogrus писал(а): ↑Сб окт 17, 2020 12:11 amhttps://mjdm.ru/forum/viewtopic.php?f=4 ... %B5#p58927
и еще куча примеров на форуме, можно и в три строки, т.е. три раза выполнить вызов нужных методов без перебора их в цикле
.И для fandaymon
Это почему ж нельзя в методе в любом (от метода обьекта до классового метода) написать каллМетод ()???
А если очень хочется ? Вон Логрус пример привел ... Там что нету каллМетода ????
Спасибо нам ПОМОЖЕТ..!
-
- Сообщения: 78
- Зарегистрирован: Вс дек 25, 2016 1:46 pm
- Благодарил (а): 7 раз
- Поблагодарили: 4 раза
Re: Как в одном методе сделать несколько действий?
Изначально был такой код
Получается , что 1 метод выполняется с заданными параметрами , а 2 всегда .Даже если приходит другой rc код!
Написал по-другому :
Все заработало как надо.
Просто интересно , если нужно выполнить 3,4-5 методов , может можно проще как-то сделать ?
Код: Выделить всё
//Дверь террасы
$idd=getGlobal("ESP02.rcdata");
{
if ($idd=="10555278")
if ((getGlobal('ESP02.light')) <"2")
callMethod("switch1.turnOn");
callMethod("switch2.turnOn");
}
Написал по-другому :
Код: Выделить всё
//Дверь террасы
$idd=getGlobal("ESP02.rcdata");
{
if ($idd=="10555278")
if ((getGlobal('ESP02.light')) <"2")
callMethod("switch1.turnOn");
if ($idd=="10555278")
if ((getGlobal('ESP02.light')) <"2")
callMethod("switch2.turnOn");
}
Просто интересно , если нужно выполнить 3,4-5 методов , может можно проще как-то сделать ?