Php вирази й оператори, пріоритет і асоціативність

Вираз - це будь-яка одиниця вихідного коду програми, яка може бути обчислена для отримання значення, наприклад, виклик функції, використання операторів, або просто звернення до змінної по імені. У PHP майже все є виразом.

Вирази діляться на прості (їх також називають первинними) і складні. Первинні вираження є самостійними виразами - вони не включають в себе ще більш простих виразів. Наприклад, до первинних виразів належать: ідентифікатори, літерали і оператор угруповання. Складні вирази складаються з простих виразів. Типовий спосіб конструювання складних виразів з простих виразів полягає в використанні операторів:

Деякі вирази, так само як і інструкції, закінчуються крапкою з комою, наприклад:

Таким чином, різниця між виразом і інструкцією полягає в тому, що будь-який вираз - це те, що обчислюється для отримання значення, а інструкція - це просто вказівка ​​на вчинення будь-які дії.

Оператор - це елемент програмного коду, який описує ту чи іншу дію в вираженні. У PHP оператор являє собою символ, завдяки якому можуть проводитися різні види обчислень, порівнянь або присвоювання за участю одного або декількох значень. Різні оператори відрізняються типом і кількістю операндів. У PHP використовується кілька типів операторів: арифметичні, привласнення, порівняння, логічні і порозрядні (побітові). Значення, розташовані по боках операторів, називаються операндами:

Числові літерали по обидві сторони від оператора + є його операндами. Операнд - це те, на що впливає оператор. Операнди і оператори дають в результаті вираз, яке формує нове значення.

З усього вищесказаного можна зробити висновок, що виразом називаються два або більше подвираженій, об'єднаних операторами. Чим більше у вас подвираженій і операторів, тим довше і складніше вираження.

При роботі з операторами особливе значення мають такі аспекти:

  • кількість операндів
  • тип операндів
  • пріоритет (порядок виконання)
  • асоціативність операторів

кількість операндів

Різні оператори беруть різну кількість операндів. Оператори, які працюють з двома операндами називаються бінарними. до таких операторам відносяться додавання, віднімання множення і т.д.

Інші оператори можуть приймати лише один операнд, вони називаються унарними. Прикладами унарна оператора можуть служити унарний мінус (-), інкремент, декремент і т.д.

Існує також один оператор, який може працювати з трьома операндами, такий оператор називається тернарний. Цим оператором є оператор, який представляє собою скорочену форму запису умовного оператора if, про який ми поговоримо пізніше, коли будемо розглядати умовні оператори.

типи операндів

Створюючи вираження, необхідно звертати увагу на типи операндів, з якими працює кожен з операторів, тому що кожен оператор очікує отримати операнди конкретного типу даних. Наприклад, не можна виконати множення двох рядків

Однак PHP намагається максимально полегшити вам життя, автоматично виконуючи необхідні перетворення типів операндів для конкретних операторів. Наступне вираз цілком допустимо:

У цьому виразі інтерпретатор PHP автоматично перетворює рядки в числа і перемножує їх. Але іноді таке автоматичне перетворення неможливо, тому будьте уважні і стежте за використовуваними типами операндів.

Примітка: Коли PHP виконує автоматичне перетворення типу, це називається неявним приведенням типу, якщо перетворення типу виконується вручну - це називається явним приведенням типу.

Пріоритет оператора визначає порядок виконання операцій при обчисленні значення виразу.

Оператори з однаковим пріоритетом обробляються в порядку проходження в вираженні. Наприклад, операції множення і ділення виконуються в тому порядку, в якому йдуть в вираженні, тому що вони мають однаковий пріоритет.

Якщо вираз містить оператори з різним пріоритетом, то порядок їх виконання може впливати на кінцевий результат виразу. За допомогою круглих дужок (і) можна перевизначити порядок виконання операторів або просто поліпшити читаність вираження.

У другому вираженні множення буде виконуватися після складання, тому що порядок виконання операторів був перевизначений за допомогою круглих дужок.

асоціативність

Всі оператори обробляють свої операнди в певному напрямку. Напрямок обробки називається асоціативністю і залежить від типу оператора. Більшість операторів виконує обробку зліва направо - такий порядок називається лівої асоціативністю. Ліва асоціативність має на увазі, що вираз обчислюється зліва направо, права асоціативність - в зворотному напрямку.

Таблиця операторів

У PHP є кілька рівнів пріоритетів, в таблиці наведено перелік операторів, відсортованих за рівнем пріоритету, від вищого до нижчого. Оператори на одному рівні мають однаковий пріоритет.

У колонці "Асоціативність" позначені оператори, які мають праву асоціативність, інші ставляться до лівої.

Схожі статті