Головна Інтернет Софт Hardware Мобіленд Вебмайстру Адміну Coding Hackzone Форум

Coding:

Вирази та оператори


Оператор – це найменша частина програми, що виконується як одне ціле. У попередньому уроці ми розглянули приклад оператора присвоювання “=” та виклик функції echo, який теж є оператором. Синтаксис PHP вимагає, щоб оператори відокремлювалися один від одного крапкою з комою, що ми також могли спостерігати в усіх попередніх прикладах.

Інколи виникає необхідність виконувати кілька операторів як одне ціле, і тоді застосовують так звані операторні дужки { } – все, що знаходиться між ними, виконується як один оператор та називається складним оператором. Трохи докладніше складні оператори буде розглянуто у наступному уроці.

Виразом називається деякий запис, що може бути підраховано, тобто що приймає деяке значення. Приклад:

<?
    $a = 5;
    $b = $a + 10;
    $c = $a * $b + 15; ?>
Тут ми бачимо три оператори присвоювання, відокремлені один від одного крапкою с комою. Кожен з цих операторів присвоює змінній зліва від знаку “=” значення виразу справа від знаку “=”, тобто 5, $a+10, $a*$b+15 відповідно.

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

Прості арифметичні операції:

Приклад Назва Значення
$a + $bДодаванняСума $a і $b
$a - $bВідніманняРізниця $a і $b
$a * $bМноженняРезультат від множення $a на $b
$a / $bДіленняРезультат від ділення $a на $b (float)
$a % $bЗалишокЗалишок від ділення $a на $b (int)

Логічні операції:

Приклад Назва Значення
$a == $bЕквівалентністьtrue, якщо $a дорівнює $b
$a === $bІдентичністьtrue, якщо $a дорівнює $b и при цьому вони – одного типу
$a != $bНе дорівнюєtrue, якщо $a не дорівнює $b
$a <> $bНе дорівнюєtrue, якщо $a не дорівнює $b
$a !== $bНе-ідентичністьtrue, якщо $a не дорівнює $b або або вони різних типів
$a < $bМеншеtrue, якщо $a менше $b
$a > $bБільшеtrue, якщо $a більше $b
$a <= $bМенше або дорівнюєtrue, якщо $a менше або дорівнює $b
$a >= $bБільше або дорівнюєtrue, якщо $a більше або дорівнює $b
$a && $bІtrue, якщо і $a=true, і $b=true
$a and $bІtrue, якщо і $a=true, і $b=true
$a || $bАБОtrue, якщо або $a=true, або $b=true
$a or $bАБОtrue, якщо або $a=true, або $b=true
$a xor $bАБО-НЕtrue, якщо або $a=true, або $b=true, але не обидва разом
!$aНЕtrue, якщо $a!=true

Логічні операції використовуються у умовних конструкціях, що ми докладніше розглянемо у наступному уроці. Слід бути особливо обережним, щоб не плутати оператор присвоювання “=” з операцією еквівалентності “==”. Справа у тому, що оператор присвоювання сам може розглядатися як вираз, наприклад така конструкція

<?
    $b = ($a = 5) + 10;
    echo $b; ?> 
надрукує число 15, оскільки тут сам оператор присвоювання має значення виразу, який присвоюється, тобто у данному випадку змінній $a присвоюється значення 5, вираз ($a = 5) теж має значення 5.

Так само працюють і оператори присвоювання з операцією: +=, -=, *=, /=, наприклад:

<?
    $a = 1;
    $a += 5; // $a == 6     $a -= 2; // $a == 4
    $a *= 3; // $a == 12
    $a /= 6; // $a == 2
?> 
Новий приклад – знак // означає коментар. Все, що стоїть у рядку програми після цього знаку, ігнорується і не виконується. Це дозволяе коментувати текст програми для більш детального його розуміння. У даному випадку я коментую, чому дорівнює значення змінної $a на кожному рядку програми. Операція += означає присвоювання з додаванням, тобто $a += 5 означає, що до попереднього значення змінної $a додається ще 5. -= відповідно – присвоєння з відніманням, *= - з множенням, /= - з діленням.

Так само треба пояснити різницю між операцією “дорівнює” (==) та “ідентично” (===). PHP має дещо демократичну політику щодо типів змінних, тобто тип змінної визначається на етапі присвоювання їй значення, за контекстом. Наприклад, у такому випадку:

<?
   $a = 5;
   $b = "5"; ?>
змінні будуть різного типу, $a – типу int, а $b – типу string. Проте в цьому випадку умова $a==$b буде істинною (бо насправді ці змінні містять одне й те саме), але умова $a===$b не буде істинною, оскільки ці змінні мають різний тип, а отже не зовсім ідентичні.

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

<?
    $a = 1;
    $a++; // значення a збільшилось на одиницю     echo "a=$a,"; // надрукує "a=2"
    $a--; // значення a зменшилось на одиницю
    echo "a=$a"; // надрукує "a=1"
?>
Якщо використовувати унарні операції у виразах, то слід знати, що ці операції мають два види запису – префіксний (++ чи – пишуться перед іменем змінної) та постфіксний (після імені). Різниця полягає у тому, що у префіксному варіанті значення виразу є збільшене чи зменшене значення змінної, а в другому – ні. Як приклад:
<?
    $a = 1;
    $b = $a++; // $a = 2, $b = 1
    $b = ++$a; // $a = 3, $b = 3     $b = --$a; // $a = 2, $b = 2
    $b = $a--; // $a = 1, $b = 2
?>
І останнє, про що потрібно знати у цьому уроці – це приорітети операцій. Якщо вираз складається з великої кількості операцій, то вони підраховуються у строго визначеному порядку. Ще з курсу арифметики середньої школи відомо про вищий приорітет операцій множення та ділення перед операціями додавання та віднімання, тобто вираз
$a*$b + $c*$d
підраховується саме як “помножити $a на $b, помножити $c на $d і скласти результати”, і ніяк інакше. Якщо ж треба спочатку виконати додавання, то потрібно використовувати дужки:
$a*($b + $c)*$d
Наведемо тут повну таблицю приорітетів операцій. Багато з цих операцій ще не були описані тут, проте така таблиця має довідниковий характер та може бути використана пізніше при виникненні будь-яких питань щодо приорітетів операцій. “Порядок” означає відносно якого знака операції визначається приорітет – справа чи зліва від поточного.

Порядок Операції
зліва,
зліваor
зліваxor
зліваand
справаprint
зліва= += -= *= /= .= %= &= |= ^= ~= <<= >>=
зліва? :
зліва||
зліва&&
зліва|
зліва^
зліва&
не має значення== != === !==
зліва< <= > >=
зліва<< >>
зліва+ - .
зліва* / %
справа! ~ ++ -- (int) (double) (string) (array) (object) @
справа[
не має значенняnew


24.10.2006

Матеріали за темою:
Цикли for(), foreach()
Змінні та константи
Основи PHP
Продвинутий SQL-менеджер
Фахівець широкого профілю


Коментарі (11) | Залишити коментар

Lilly | 17.04.2011 06:25
Wow! That′s a relaly neat answer!

Sundance | 17.04.2011 21:54
I′m out of league here. Too much brain power on dsiaply!

oem software | 10.02.2012 22:12
rQF6Bf I am amazed with the abundance of interesting articles on your site! The author - good luck and wish you the new interesting posts..!!

Microsoft OEM Software | 07.03.2012 14:42
CCfYOx Looking forward to reading more. Great blog.Thanks Again. Really Cool.

Adobe OEM Software | 08.03.2012 05:36
hDZO7N I am so grateful for your blog article.Really thank you! Really Cool.

Adobe OEM Software | 08.03.2012 21:25
igs8wc I really liked your blog. Really Great.

Microsoft OEM Software | 08.03.2012 21:25
U5BC7z I appreciate you sharing this article post.Much thanks again. Awesome.

Discount OEM Software | 08.03.2012 22:23
xIlhzz Hey, thanks for the blog article.Really thank you! Awesome.

Microsoft OEM Software | 08.03.2012 22:24
7P0pjP A round of applause for your article post.Much thanks again. Want more.

Microsoft OEM Software | 08.03.2012 22:24
NeRoEa This is one awesome article.Really thank you! Great.

wholesale men clothing | 20.03.2012 23:27
Really informative article.Much thanks again. Great.

Додати коментарi

Iм'я:
Код (UA):
Коментарi:


Престижный фирменный samsung scx 4500 только у нас Вы найдете все модели.



ФОРУМ



КНИГИ, ЛІТЕРАТУРА

Бойнтон Энди, Фишер Билл — «Виртуозные команды. Команды, которые изменили мир» (аудиокнига MP3) Придбати на
AudioBooks.com.ua -
115,95 грн.
Бойнтон Энди, Фишер Билл — «Виртуозные команды. Команды, которые изменили мир» (аудиокнига MP3)
Макиавелли Никколо — «Государь» (аудиокнига MP3) Придбати на
AudioBooks.com.ua -
28,95 грн.
Макиавелли Никколо — «Государь» (аудиокнига MP3)

Партнери