Operatory w PHP

Poziom: Początkujący
Część: 03

Spis treści

  1. Co to jest operator?
  2. Operatory arytmetyczne
  3. Operatory bitowe
  4. Operator ciągu znaków
  5. Operator przypisania
  6. Operatory porównania
  7. Operator kontroli błędów
  8. Operator wywołania
  9. Operatory inkrementacji i dekrementacji
  10. Operatory logiczne
  11. Operator typu
  12. Priorytet operatorów

Co to jest operator?

  • Operator – konstrukcja językowa jedno-, bądź wieloargumentowa zwracająca wartość
  • Jeden lub wiele operatorów tworzy wyrażenie zwracające wartość wyliczoną (utworzoną) z podanych operandów
  • Typ zwracanej wartości jest zależny od użytego operatora i typów podanych operandów
  • Oparatory (tak jak działania arytmetyczne) posiadają pierwszeństwo wykonywania (priorytet)
  • Oraz mogą posiadać cechę łączności

Operatory arytmetyczne

Operator Użycie Nazwa Działanie
+ +$a Tożsamość Zwraca wartość podanego argumentu
- -$a Negacja Zwraca liczbę przeciwną
+ $a + $b Dodawanie Suma $a i $b
- $a – $b Odejmowanie Różnica $a i $b
** * ** $a * $b Mnożenie Iloczyn $a i $b
/ $a / $b Dzielenie Iloraz $a i $b (1)
% $a % $b Modulo Reszta z dzielenia $a przez $b (2)
** $a ** $b Potęgowanie Zwraca liczbę $a podniesioną do potęgi $b
  1. Wynikiem dzielenia jest liczba zmiennoprzecinkowa (float) chyba że oba operandy były typu całkowitego (integer) i wynikiem jest liczba całkowita
  2. Podane operandy poddane są niejawnej konwersji do typu całkowitego (integer) poprzez zaokrąglenie w dół. Zwracana wartość jest typu całkowitego (integer) o znaku zgodnym ze znakiem $a

Operatory bitowe

Operator Użycie Nazwa Działanie
& $a & $b Iloczyn bitowy (AND) Zwraca bity które występują w obu operandach
| $a | $b Suma bitowa (OR) Zwraca bity które występują conajmniej w jednym operandzie
^ $a ^ $b Alternatywa wykluczająca (XOR) Zwraca bity które występują tylko w jednym operandzie (ale nie w drugim)
~ ~ $a Negacja bitowa (NOT) Odwraca wartość bitów w słowie
« $a << $b Przesunięcie bitowe w lewo Przesuwa w lewo bity w słowie $a o ilość kroków $b (odpowiednik mnożenia przez 2 $b razy)
» $a >> $b Przesunięcie bitowe w prawo Przesuwa bity w prawo w słowie $a o ilość kroków $b (odpowiednik dzielenia przez 2 $b razy)

Operator ciągu znaków

  • Konkatenacja - łączenie wyrażeń tekstowych w jedno
  • Przykład: 'xxx' . 'yyy', 'abc' . 123
  • Konkatenacja zawsze zwraca ciag znaków nawet gdy wszystkimi operandami będą typy liczbowe

Operatory przypisania

Podstawowy operator przypisania =

  • Użycie $a = 3, $a = 2 + 4
  • Przypisuje wartość wyrażenia po prawej stronie do operandu po lewej
  • Nie jest to znak równości!

Łączne operatory przypisania

Operator Użycie Odpowiednik Przykład
+= $a += $b $a = $a + $b $a += 2
-= $a –= $b $a = $a - $b $a -= 5
** *= ** $a *= $b $a = $a * $b $a *= 4
/= $a /= $b $a = $a / $b $a /= 2
%= $a %= $b $a = $a % $b $a %= 2
**= $a **= $b $a = $a ** $b $a **= 2
.= $a .= $b $a = $a . $b $a .= 'xXx'
&= $a &= $b $a = $a & $b  
|= $a &#124;= $b $a = $a &#124; $b  
^= $a ^= $b $a = $a ^ $b  
«= $a <<= $b $a = $a << $b  
»= $a >>= $b $a = $a >> $b  

Operatory porównania

Operator Użycie Nazwa Działanie
== $a == $b Równość Zwraca true jeśli $a jest równe $b po niejawnej konwersji typów
=== $a === $b Identyczność Zwraca true jeśli $a jest równe $b (porównuje również typy)
!= $a != $b Nierówność Zwraca true jeśli $a nie jest równe $b po niejawnej konwersji typów
<>= $a <> $b Nierówność Zwraca true jeśli $a nie jest równe $b po niejawnej konwersji typów
!== $a !== $b Nieidentyczność Zwraca true jeśli $a nie jest równe $b (porównuje również typy)
< $a < $b Mniejszy Zwraca true jeśli $a jest mniejsze od $b
> $a > $b Większy Zwraca true jeśli $a jest większe od $b
<= $a <= $b Mniejszy równy Zwraca true jeśli $a jest mniejsze lub równe $b
>= $a >= $b Większy równy Zwraca true jeśli $a jest większe lub równe $b

Operator kontroli błędów

  • @ dodany na początku wyrażenia wyłącza domyślą obsługę błędów. Blędy nie będą wyświetlane
  • Operator dla:
    • funkcji @file_get_contents($a)
    • jak również wyrażeń $tablica[$x]
  • Umożliwia samodzielną kontrolę błędów

Operator wywołania

  • ` słyży do wykonywania poleceń powłoki, na przykład $a = `ls -lah`;
  • Jest tożsamy z funkcją shell_exec()
  • Ten operator to nie apostrof! Jest to tak zwany backquote
  • Operator nie działa w przypadku włączonego trybu safe mode lub shell_exec() jest nieaktywny

Operatory inkrementacji i dekrementacji

  • Działają tylko na liczbach i ciągach znakowych
Operator Użycie Nazwa Działanie
++ ++$a Pre-Inkrementacja Zwiększa wartość $a, następnie zwraca $a
++ $a++ Post-Inkrementacja Zwraca $a, następnie zwiększa wartość $a
--$a Pre-Dekrementacja Zmniejsza wartość $a, następnie zwraca $a
++ $a-- Post-Dekrementacja Zwraca $a, następnie zmniejsza wartość $a

Operatory logiczne

Operator Użycie Nazwa Działanie
&& $a && $b Iloczyn logiczny (AND) Zwraca true jeśli $a i $b mają wartość true
|| $a || $b Suma logiczna (OR) Zwraca true jeśli $a lub $b ma wartość true
! !$a Negacja Zwraca true w przypdaku false i false w przypadku true
xor $a xor $b Alternatywa wykluczająca (XOR) Zwraca true jeśli $a i $b mają różne wartości
and $a and $b Iloczyn logiczny (AND) Zwraca true jeśli $a i $b mają wartość true
or $a or $b Suma logiczna (OR) Zwraca true jeśli $a lub $b ma wartość true

Operator typu

  • instanceof sprawdza czy zmienna jest obiektem rządanej klasy
  • zwraca wartość typu logicznego
  • przykład użycia $a instanceof MyClass

Priorytet operatorów

  • Operatory w PHP tak jak działania w matematyce podlegają kolejności wykonywania
  • Wyrażenia możemy grupować za pomocą nawiasów np. $a && ($b xor 4c)
  • Priorytet (zobacz)
    1. clone, new
    2. []
    3. **
    4. ++, --, ~, (int), (float), (string), (array), (bool), (object)
    5. @
    6. instanceof
    7. !
    8. *, /, %
    9. +, -, .
    10. <<, >>
    11. <, <= > >=
    12. ==, !=, ===, !==, <>, <=>
    13. &
    14. ^
    15. |
    16. &&
    17. ||
    18. =, +=, -=, *=, **=, /=, .=, %=, &=, |=, ^=, <<=, >>=
    19. and
    20. xor
    21. or

NOTE!
Comments suspended as this is not production environment!