Operatory w PHP
Spis treści
- Co to jest operator?
- Operatory arytmetyczne
- Operatory bitowe
- Operator ciągu znaków
- Operator przypisania
- Operatory porównania
- Operator kontroli błędów
- Operator wywołania
- Operatory inkrementacji i dekrementacji
- Operatory logiczne
- Operator typu
- 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
|
- Wynikiem dzielenia jest liczba zmiennoprzecinkowa (
float) chyba że oba operandy były typu całkowitego (integer) i wynikiem jest liczba całkowita - 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 |= $b |
$a = $a | $b |
|
| ^= | $a ^= $b |
$a = $a ^ $b |
|
| «= | $a <<= $b |
$a = $a << $b |
|
| »= | $a >>= $b |
$a = $a >> $b |
Operatory porównania
- Zawsze zwaracają wartość typu logicznego (
bool)
| 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]
- funkcji
- 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
- Zawsze zwaracają wartość typu logicznego (
bool)
| 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
-
instanceofsprawdza 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)
-
clone,new []**-
++,--,~,(int),(float),(string),(array),(bool),(object) @instanceof!-
*,/,% -
+,-,. -
<<,>> -
<,<=>>= -
==,!=,===,!==,<>,<=> &^|&&||-
=,+=,-=,*=,**=,/=,.=,%=,&=,|=,^=,<<=,>>= andxoror
-