Проверка наличия свойства

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

Ответить
Jilber
Сообщения: 686
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 113 раз
Поблагодарили: 107 раз

Проверка наличия свойства

Сообщение Jilber » Сб фев 24, 2024 12:26 pm

Всем привет. Подскажите, можно ли как-то в коде проверить наличие определённого свойства объекта ? Спасибо.
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: Проверка наличия свойства

Сообщение xor » Сб фев 24, 2024 1:54 pm

Jilber писал(а):
Сб фев 24, 2024 12:26 pm
Всем привет. Подскажите, можно ли как-то в коде проверить наличие определённого свойства объекта ? Спасибо.
не понятно. если прочитать несуществующее свойство или ни разу не заполненное - вернёт false. при записи в несуществующее - создаст у объекта такое свойство и подставит значение записываемое.
или по таблицам искать среди свойств объекта и класса по имени.
неизвестна цель хотелки
Jilber
Сообщения: 686
Зарегистрирован: Ср май 03, 2017 7:41 pm
Благодарил (а): 113 раз
Поблагодарили: 107 раз

Re: Проверка наличия свойства

Сообщение Jilber » Сб фев 24, 2024 2:08 pm

Вроде бы уже разобрался. Сделал так:

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

 $PropertyName = gg('Объект.Свойство');
  if ($PropertyName) {
  echo $PropertyName;
  }
  
Пытался сделать без промежуточного свойства $PropertyName, т.е. сразу в условие добавить gg, но либо так не работает, либо где-то накосячил.
Аватара пользователя
xor
Сообщения: 2039
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 286 раз
Поблагодарили: 629 раз

Re: Проверка наличия свойства

Сообщение xor » Сб фев 24, 2024 2:53 pm

Jilber писал(а):
Сб фев 24, 2024 2:08 pm
Вроде бы уже разобрался. Сделал так:

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

 $PropertyName = gg('Объект.Свойство');
  if ($PropertyName) {
  echo $PropertyName;
  }
  
Пытался сделать без промежуточного свойства $PropertyName, т.е. сразу в условие добавить gg, но либо так не работает, либо где-то накосячил.
с нулем не прокатит

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

sg("tasmota_8BF037.alive", 0);
$PropertyName = gg("tasmota_8BF037.alive");
if ($PropertyName) {
    echo $PropertyName;
} else {
    echo "empty";
}
За это сообщение автора xor поблагодарил:
Jilber (Пт мар 01, 2024 11:54 am)
Рейтинг: 1.16%
Logrus
Сообщения: 2084
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 313 раз
Поблагодарили: 457 раз

Re: Проверка наличия свойства

Сообщение Logrus » Сб фев 24, 2024 5:47 pm

xor писал(а):
Сб фев 24, 2024 1:54 pm
Jilber писал(а):
Сб фев 24, 2024 12:26 pm
Всем привет. Подскажите, можно ли как-то в коде проверить наличие определённого свойства объекта ? Спасибо.
не понятно. если прочитать несуществующее свойство или ни разу не заполненное - вернёт false. при записи в несуществующее - создаст у объекта такое свойство и подставит значение записываемое.
или по таблицам искать среди свойств объекта и класса по имени.
неизвестна цель хотелки
насколько помню, там в один прекрасный момент, несколько лет назад это поломали и местами возвращает не фальш, а 0, что в корне неверно, более того там и с кешем трабла
¯\_(ツ)_/¯
https://github.com/sergejey/majordomo/b ... s.php#L622
п.с. т.е. там еще больше "граблей"
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Ответить