JekFdrv
@JekFdrv
webdeveloper

Как правильно продумывать логику условных операторов ветвления «if»?

Ребят я никак не могу научиться с первого и даже с 3 раза рисовать у себя в голове схему сложных условных операторов. Я знаю как себя должен вести код но почему то у меня всегда затык на логике с операторами которых несколько, в группах и с реверсными значением условного выражения "!". Я замечаю что на этих этапах особо сильно торможу =) Может кто подскажет метод, благодаря которому все станет проще, метод который позволит легко визуализировать поведение, и избавит от тормозов на этом этапе разработки? =)
Банальный простой пример из php
if(!$this->data['status']) {
    //code
}

выдает ошибку в случае когда индекса"status" нету "Undefined index:". Переделываю в
if (isset($this->data['status']) && !$this->data['status']) {
    //code
}

и получаю не корректную логику. Пришлось лезть за блокнотиком... уже решил но потратил на это лишнее время.
И так со мной всегда =)
Может кто то уже сам создал свой простой шаблон и готов им поделиться =)
  • Вопрос задан
  • 235 просмотров
Пригласить эксперта
Ответы на вопрос 3
@maxtm
Make money, not job
Я немного фигею от местных ответов :)
Один советует нахрен сменить язык, второй говорит про экзепшены, которые не существуют в пыхе, третий предлагает перейти на TDD... no comments.

И только лишь один, вменяемый fshp, сказал, в чем у человек проблема - array_key_exits (applaus)

А по делу, имхо, только опыт в языке, опыт в промышленной разработке, десятки сломанных копей и костылей могут позволить Вам без проблем писать код не парясь над логическими операторами.
Ответ написан
А причём тут if? Вы изначально используете не те функции, что требуется. Соответственно, результат не правильный.

1) Используйте array_key_exists вместо isset. isset по другому работает с null
2) В PHP есть гарантия того, что левый операнд оператора && выполнится первым всегда? Если нет, то опять же вы можете словить ошибку "Undefined index".
Ответ написан
stasuss
@stasuss
быдлокодер со стажем
тут дело не в if а в продумывании наперед.

обычно программисты продумывают все возможные и невезможные варианты входных данных, а вы просто слишком легкомысленно относитесь к логике и if тут не при чем, так можно и null reference exception (хз есть такое в php или нет) получить).

правда есть обратная сторона, когда особо дотошные, код загромождают кучей проверок на случай сценариев, которые могут произойти только если сотона аццкая поработит этот мир)))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы