Автор Тема: Логически оператори  (Прочетена 2007 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

gatakka

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 0
  • -Получени: 19
  • Публикации: 681
Логически оператори
« -: 05 Януари 2010, 12:08:04 »
** Тази тема дискутира:: Логически оператори **
Автор: Гатака
« Последна редакция: 14 Април 2015, 22:42:33 от Avalanche »
За да знаеш трябва да питаш,
но за да знаеш някой трябва да ти отговори на питанията.
Добре дошли в Научи Ме!

intel

  • Гост
Отг:Логически оператори
« Отговор #1 -: 28 Март 2010, 02:54:19 »
Само да дам един пример за тези логически оператори.
В предишен урок Иван даде един прост пример, а именно:

2-2*2 = ?

И обясни защо резултата е -2, а не 0.
Той спомена че в математика има един принцип наречен приоретизация на деиствията.

Т.е. кое деиствие след кое следва.
В конкретния пример първо винаги се извършва умножението и чак след това се извършва изваждането.

За по-нагледно ще го направя със скоби.
2-(2*2) = 2-4 = -2

Но попринцип е прието да не се слагат скоби за улеснение ;)


Така, ако искате обаче първо да се извърши изваждането и чак след това да умножите - просто преместете скобите:
(2-2)*2 = 0*2 = 0

--------------------------------------------------------------


И сега - защо ви го пиша всичкото това?
Ами защото принципа при логическите оператори е абсолютно същия!
Т.е. и тук както  в математиката има приоретизация, но на операторите.

Веднага пример:

$a = 1; $b = 2; $c = 4;
if($a==1 || $b==2  && $c ==3) {
   echo  " true " ;
}
else {
   echo  " false " ;
}


Представете си че на вас задачата ви е да познаете кое след кое ще се провери.

Т.е. тази проверка $a==1 || $b==2  && $c ==3  какво ще върне.
Сега ако ви кажа, че && е с по-голям приоритет, би трябвало сами да се сетите къде ще са скобите нали?

Правилния резултат ще е: $a==1 || ($b==2  && $c ==3) = true
А горния израз означава следното:

Ако едно от двете условия е вярно значи резултата ще е вярно(true).

Първото условие е: $а да е равно на 1.

Второто условие е: $b задължително да е равно на 2, и съответно $с задължително да е равно на 3.


Виждате ли че това е цялата философия ;)
Ако ви е трудно схващането - просто винаги си слагайте скобките, за да свикнете - няма да има грешка при изпълнението на кода :)