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
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)
clone
,new
[]
**
++
,--
,~
,(int)
,(float)
,(string)
,(array)
,(bool)
,(object)
@
instanceof
!
*
,/
,%
+
,-
,.
<<
,>>
<
,<=
>
>=
==
,!=
,===
,!==
,<>
,<=>
&
^
|
&&
||
=
,+=
,-=
,*=
,**=
,/=
,.=
,%=
,&=
,|=
,^=
,<<=
,>>=
and
xor
or