Лекція № 4 Тема: Вирази та операції в РНР План: Поняття "вираз". Операції в РНР. Арифметичні операції. Бітові операції. Логічні операції. Поняття «вираз» в PHP Вирази є тією «цеглою», з якої складаються РHP-програми. Практично все, що ви пишете в програмі, є виразом. При цьому під виразом розуміється те, що має значення. Можна сказати і по-іншому: все, що має значення, є виразом. Найпростіший вираз — це константа, що стоїть в правій частині оператора привласнення: $х = 100; Розберемося, що є що. $х — це змінна = — це оператор привласнення, а 100 — це і є вираз. Його значення — 100. Виразом може служити і змінна, якщо їй зіставлено безумовно значення. Наприклад: $х = 4; Sy = $х; У першому операторові виразом є константа 4. У другому — змінна $х, оскільки раніше їй було привласнено значення 4. Але це ще не все $у = $х теж є виразом! Адже не викликає сумніву те, що його значення 4. Це, у свою чергу, дозволяє використовувати наступних операторів: $у = $х = 5 або $у = ($х = 5). Таким чином, в середині виразу можемо використовувати оператора привласнення: $у = 1; $х = 100* ($у = 2) * $у; Очевидно, що змінній $х буде привласнено значення 400 (100*2 = 200 *8 2 - 400). Операції в PHP Арифметичні операції Як і в будь-якій іншій мові, ми можемо використовувати арифметичні операції: X + Y — складання; X — Y — віднімання; X * Y — множення; X / Y — ділення; X % Y — залишок від, ділення X на Y. Також можливе використання дужок. Пріоритет одних арифметичних операцій над іншими і зміна пріоритетів при використанні дужок в арифметичних виразах відповідають звичайним математичним правилам. До арифметичних операцій можна також віднести операції інкремента і декремента: операція інкремента $х++ збільшує значення на 1; операція декремента $х— зменшує значення на 1. Бітові операції Дані операції призначені для установки або зняття груп бітів цілочисельної змінної. Адже будь-яке число — це просто послідовність битий. Цілі числа в PHP — 32-розрядні, тому для представлення одного числа використовуються 32 бита: 0000 0000 0000 0000 0000 0000 0000 0000 - це нуль 0000 0000 0000 0000 0000 0000 0000 0001 - це 1 0000 0000 0000 0000 0000 0000 0000 0010 - це 2 0000 0000 0000 0000 0000 0000 0000 0011 - це 3 0000 0000 0000 0000 0000 0000 0000 0100 - це 4 0000 0000 0000 0000 0000 0000 0000 0101 - це 5 0000 0000 0000 0000 0000 0000 0000 1111 - це 15 Бітові операції: x & у — будуть встановлені ті біти, які встановлені в x і уодночасно:x = 1111 (15) у = 1100 (12) Результат = 1100 (12) . x | b — будуть встановлені тільки ті біти, які були встановлені або в x або в у:x = 0100 (4) у = 0101 (5) Результат = 0101 (5). -х — інвертування бітів:x - 1001 Результат = 0110. x << у — порозрядне зрушення бітів x вліво на у розрядів:x = 0010 у = 0001 (1 розряд) Результат = 0100. x >> у — порозрядне зрушення бітів x управо на у розрядів:x = 0010 у = 0001 (1 розряд) Результат = 0001. Логічні вирази Логічні вирази — це вирази, результатом яких може бути або істина, або брехня. Приклади логічних виразів: $х = true; // $х = істина $х = $у < 0; // $х = true, якщо $у < 0 $х = $у == 0; // $х = true, якщо $у = 0 $х = $у>=0 &&$ у<=10 // $х = true, якщо $у < =0 і $у<=10, то // є $у у діапазоні від 0 до 10. У логічних виразах можна використовувати операторів порівняння і логічні операції. Оператори порівняння: == — рівно; != — не рівно; < — менше; > — більше; >= — більше або рівно; <= — менше або рівно. У PHP не можна порівнювати масиви і об'єкти, дозволяється порівнювати тільки скалярні змінні. Логічні операції: !x повертає true, якщо x — брехня, і навпаки (заперечення — NOT); x && у повертає true, якщо x і у — істинні (логічна операція І — AND); х || у повертає true, якщо істинне хоч би одне із значень або всі вони істинні (логічна операція АБО — OR). Операції операторів інкремента (++) і декремента (—) не працюють з логічними змінними, тобто не є логічними операціями. Можна б було, звичайно, припустити, що якщо false — це 0, отже, інкремент false — це true, тобто 1. <? $х = false; echo $х; $х++; echo $х; ?> Проте приведений сценарій нічого не виведе (точніше він виведе два порожні рядки). Це означає, що операція інкремента для логічних значень не працює. Те ж саме можна сказати і про операцію декремента. Скільки буде 2+2*2? Правильно, 6. Оскільки операція множення виконується перед операцією складання, отже, пріоритет операції множення вищий. Пріоритет арифметичних і логічних операцій представлений в табл. Операції з вищим рівнем пріоритету виконуються в першу чергу. Якщо ви в чомусь сумніваєтеся, використовуйте дужки. Пріоритет операцій в РНР Таблиця 5.3