Operatory stosowane w PHP

W tym wpisie omówię tematykę operatorów jakie używamy w PHP. Jeżeli znasz już inny język programowania i poniższe operatory wydają ci się znajome to masz dobre odczucia. Te same operatory używane są także w innych językach.

Co to są operatory?

Operatory to prawdopodobnie dla niektórych kolejne enigmatyczne hasło. Jednak w rzeczywistości nie jest to nic innego jak znaki takie jak „=”, „+”, ” -„. Z pewnością więc każdy je zna chociaż by z lekcji matematyki. W PHP mogą one jednak działać nieco inaczej. Dlatego warto im poświęcić chwilę, a z pewnością to zaprocentuje w przyszłości.

Dodawanie, odejmowanie…

W PHP znaki te często bywają wieloznaczne a różniące się zapisy różnią się między sobą.

DziałanieRównoznaczneRodzaj
x = yx = yrównanie / elementy są równe
x += yx = x + ydodawanie do siebie elementów
x -= yx = x – yodejmowanie
x *= yx = x * ymnożenie
x /= yx = x / ydzielenie
x %= yx = x % ymodulo (wyciągamy resztę)
Co robi dany znacznik, działanie
  • Modulo – jest to reszta jaka pozostaje z dzielenia

Co to jest ta reszta?

Przykładowo:

12/5 = 2 reszta 2 (12 dzielimy przez 5) -> bo 5 razy 2 to 10 i brakuje jeszcze 2 by mieć 12.

Porównywanie ze sobą wartości

W PHP często musimy coś ze sobą porównywać, bardzo przydatne są przy tym operatory porównawcze.

OperatorNazwaPrzykładOpis
==równe$x == $yZwróć wynik jeśli $x  jest równe $y
===identyczne$x === $yZwróć wynik jeśli  $x  jest równe $y, i są tego samego typu
!=nie równe$x != $yZwróć wynik jeśli  $x  jest nie są równe $y
<>nie równe$x <> $yZwróć wynik jeśli  $x  jest nie są równe $y
!==nie identyczne$x !== $yZwróć wynik jeśli $x  jest nie są równe  $y, albo nie są tego samego typu
>większe niż$x > $yZwróć wynik jeśli  $x jeśli jest większe niż $y
<mniejsze niż$x < $yZwróć wynik jeśli  $x jeśli jest mniejsze niż $y
>=większe lub równe$x >= $yZwróć wynik jeśli  $x jeśli jest większe niż lub równe $y
<=mniejsze lub równe$x <= $yZwróć wynik jeśli  $x jeśli jest mniejsze niż lub równe $y

Zwiększanie / zmniejszanie licznika

Operatory zmieniające wartość zmiennej. Bardzo przydatne np. podczas tworzenia prostych pętli.

OperatorNazwaOpis
++$xpreinkrementacjaZwiększa $x o jeden, potem zwraca wartość $x
$x++postinkrementacjaZwraca $x, potem zwiększa $x o jeden
–$xpredecrementacjaZmniejsza $x o jeden, potem zwraca $x
$x–postdecrementacjaZwraca $x, potem zmniejsza $x o jeden

Trochę to brzmi dziwnie dlatego zamieściłam przykłady:

$x=3;
$y = ++$x; // wynik $y==4, $x==4
$y = $x++; //wynik $y==3, $x==4
$y = $x–; // $x==2, $y==3
$y = –$x; // $x==1, $y==1

Dużo lepiej operacje te można zrozumieć kiedy zaczyna się je stosować w praktyce. Co polecam! Do przetestowania licznika przyda się pętla np. IF, FOR.

Operatory logiczne

Kolejnym typem operatorów są operatory logiczne. Ich zadaniem jest również porównywanie pomiędzy sobą wartości zmiennych. Ich nazwy pokrywają się z bramkami logicznymi.

OperatorNazwaPrzykład Opis
andAnd$x and $yPrawda jeśli $x i $y są prawdziwe
orOr$x or $yPrawda jeśli $x lub $y są prawdziwe
xorXor$x xor $yPrawda jeśli $x lub $y są prawdziwe, lub oba nie są
&&And$x && $yPrawda jeśli oba $x i $y są prawdziwe
||Or$x || $yPrawda jeśli $x lub $y są prawdziwe
!Not!$xPrawda jeśli $x nie jest prawdziwe

Łączenie ze sobą kilku zmiennych

W PHP można również pracować na ciągach znaków (tekstach, numerach) zwanych stringami.

OperatorNazwaPrzykładOpis
.łączenie$txt1 . $txt2łączenie ze sobą $txt1 i $txt2
.=przypisywanie$txt1 .= $txt2Dokleja $txt2 do $txt1

Tablice z danymi

Nieco innym typem na którym można operować są tablice. Dla uproszczenia można je porównać do tabelki w której znajdują się odpowiednio kolumny i wiersze. Tak jak tabelka może posiadać wiele kolumn i wierszy tak tablica może być jedno wymiarowa (1 kolumna – wiele wierszy) lub wielo-wymiarowa (wiele kolumn – wiele wierszy).

OperatorNazwaPrzykładOpis
+Union$x + $yzwiązek of $x i $y
==Equality$x == $yZwraca true (prawdę), jeśli $ x i $ y mają takie same pary klucz / wartości
===Identity$x === $yZwraca true, jeśli $ x i $ y mają takie same pary klucz / wartość w tej samej kolejności i z tych samych typów
!=Inequality$x != $yZwraca true jeśli $x nie jest równe $y
<>Inequality$x <> $yZwraca true jeśli $x nie jest równe $y
!==Non-identity$x !== $yZwraca true jeśli $x nie jest identyczne z $y

Źródło: