Operatory

Co to jest operator?

Operatory to najprościej mówiąc symbole, służące do operacji na zmiennych. Operatory dzielą się na:

  • arytmetyczne – do operacji na liczbach,
  • przypisania – do przypisywania zmiennym wartości,
  • operacji bitowych,
  • porównania – niezbędne do instrukcji warunkowych,
  • kontroli błędów,
  • wykonania – służące do uruchamiania zewnętrznych programów,
  • inkrementacji i dekrementacji,
  • logiczne,
  • łańcucha znaków.

Operatory arytmetyczne

Są to najprostsze operacje matematyczne. Poniżej lista operatorów:

Przykład Nazwa Opis
$a + $b dodawanie Suma $a i $b
$a – $b odejmowanie Różnica $a od $b
$a * $b mnożenie Iloczyn $a i $b
$a / $b dzielenie Iloraz $a przez $b
$a % $b dzielenie modulo Reszta z dzielenia $a przez $b

Operatory przypisania

Podstawowym operatorem przypisania jest symbol “=”. Oczywiście nie oznacza on “jest równe”. Wyrażenie $b = 5 oznacza, że zmienna $b przyjmuje wartość równą 5.

Ogólnie mówiąc, operand z lewej strony operatora “=” otrzymuje wartość wyrażenia stojącego po stronie prawej. Zmiennej można także przypisać wartość innej zmiennej: $b = 5; $a = $b; – zmienna $a przyjmie wartość 5.

Wartości te można przypisywać kaskadowo, przy czym wartości przypisywane będą od prawej do lewej, np.:

<?
 
    $nazwa = $inna_nazwa = $trzecia_nazwa = 5;

?>

W tym wypadku wszystkim zmiennym zostanie przypisana wartość 5. Operator przypisania można łączyć z operatorami arytmetycznymi i operatorem łączenia łańcuchów znaków:

Przykład Nazwa
$a += 2 Do zmiennej $a dodane zostanie 2
$a -= 2 Od zmiennej $a odjęte zostanie 2
$a *= 2 Zmienna $a zostanie pomnożona przez 2
$a /= 2 Zmienna $a zostanie podzielona przez 2
$a %= 2 Zmienna $a przyjmie wartość reszty z dzielenia $a przez 2
$a .= “dalszy ciąg” Do zmiennej $a na końcu dodany zostanie ” dalszy ciąg”

Operatory operacji bitowych

Operatory operacji bitowych pozwalają na przestawianie pojedynczych bitów zmiennych. Poniższa tabela przeznaczona jest dla osób, które miały już jakąkolwiek styczność z operacjami na bitach.

Przykład Nazwa Opis
$a & $b Mnożenie bitowe Ustawiane są bity, które są ustawione w obu zmiennych
$a | $b Suma bitowa Ustawiane są bity, które są ustawione w jednej lub drugiej zmiennej
$a ^ $b Suma bitowa modulo 2 Ustawiane są bity, które są ustawione w jednej lub drugiej zmiennej, ale nie w obu na raz
~ $a Negacja bitowa Inwerter – ustawiane są bity, które nie są ustawione w zmiennej $a i odwrotnie.
$a << $b Przesunięcie w lewo Przesuwa bity z $a o $b kroków w lewo (każdy krok oznacza pomnożenie przez 2)
$a >> $b Przesunięcie w prawo Przesuwa bity z $a o $b kroków w prawo (każdy krok oznacza podzielenie przez 2)

Operatory porównania

Operatory porównania są niezbędne do korzystania z instrukcji warunkowych. Zwracają one wartość TRUE (prawda – 1) lub FALSE (fałsz – 0).

Przykład Nazwa Opis
$a == $b Równy TRUE jeśli $a jest równe $b
$a === $b Identyczny TRUE jeśli $a jest równe $b, i obydwa operandy są tego samego typu (tylko w PHP 4)
$a != $b Różny TRUE jeśli $a nie jest równy $b
$a !== $b Nie identyczny TRUE jeśli $a nie jest równy $b lub nie są tego samego typu (tylko w PHP 4)
$a < $b Mniejszy od TRUE jeśli $a jest mniejszy od $b
$a > $b Większy od TRUE jeśli $a jest większy od $b
$a <= $b Mniejszy lub równy TRUE jeśli $a jest mniejszy lub równy $b
$a >= $b Większy lub równy TRUE jeśli $a jest większy lub równy $b

Operator kontroli błędów

Operatorem kontroli błędów w PHP jest znak małpy (@). Jeśli zostanie on postawiony przed wyrażeniem zwracającym wartość, to jakiekolwiek powiadomienia o błędach wygenerowane przez to wyrażenie nie zostaną wyświetlone. Operator @ może zostać postawiony przed zmiennymi, wywołaniami funkcji, instrukcjami include(), stałymi itp. Nie może natomiast poprzedzać definicji funkcji bądź klasy lub struktur kontrolnych (if, while, foreach) itp.

Należy pamiętać, że operator kontroli błędów @ wyłącza także powiadamianie o błędach krytycznych (przerywających wykonanie skryptu). Oznacza to, że należy liczyć się z sytuacją, w której skrypt przerwie działanie nie powiadamiając dlaczego.

Przykład użycia operatora @:

<?
 
    // Zamierzony błąd obsługi pliku
    $my_file = @file('nieistniejący_plik') or
        die("Błąd przy otwieraniu pliku.");

    // mechanizm ten działa dla wszystkich wyrażeń, nie tylko dla funkcji:

    $value = @$cache[$key]; 

    // spowoduje niewyświetlenie powiadomienia, jeśli nie istnieje wpis 
    // do tablicy o indeksie $key.

?>

Operator wykonania

WAŻNE! Operatorem wykonania polecenia systemowego jest w PHP apostrof wsteczny (“`”). Uwaga! Jest to inny znak niż zwykły apostrof.

Zawartość apostrofu wstecznego zostanie wykonana jako polecenie systemowe. Wynik polecenia zostanie zwrócony (tzn. nie zostanie wysłany do przeglądarki, a będzie dostępny do przypisania do zmiennej).

<?
 
    $wynik = `ls -al`;
    echo "$wynik";

?>

Powyższy przykład spowoduje wyświetlenie zawartości bieżącego katalogu.

Operatory inkrementacji i dekrementacji

Operatory inkrementacji i dekrementacji występują w większości języków programowania. Służą do zmniejszenia lub zwiększenia wartości danej zmiennej o 1.

Każdy operator można stosować na dwa sposoby: preinkrementacja/predekrementacja – najpierw wartość zmiennej zostanie zmieniona, a później zwrócona lub postinkrementacja/postdekrementacja – najpierw zostanie zwrócona wartość zmiennej, a następnie wartość zmiennej zostanie zmieniona.

Przykład Nazwa Opis
++$a Preinkrementacja Zwiększa $a o jeden, a następnie zwraca $a
$a++ Postinkrementacja Zwraca $a, a następnie zwiększa $a o jeden
–$a Predekrementacja Zmniejsza $a o jeden, po czym zwraca $a
$a– Postdekrementacja Zwraca $a, po czym zmniejsza $a o jeden

W zrozumieniu zasad działania tych operatorów pomocny może być przykład.

<?
 
     echo "Preinkrementacja";
    $a = 5;
    echo "Powinno być 6: " . ++$a . "
\n";
    echo "Powinno być 6: " . $a . "
\n";

    echo "Postinkrementacja";
    $a = 5;
    echo "Powinno być 5: " . $a++ . "
\n";
    echo "Powinno być 6: " . $a . "
\n";

    echo "Predekrementacja";
    $a = 5;
    echo "Powinno być 4: " . --$a . "
\n";
    echo "Powinno być 4: " . $a . "
\n";

    echo "Postdekrementacja";
    $a = 5;
    echo "Powinno być 5: " . $a-- . "
\n";
    echo "Powinno być 4: " . $a . "
\n";

?>

Operatory logiczne

Operatory logiczne służą do budowania bardziej skomplikowanych instrukcji warunkowych – do łączenia kilku warunków w jednej instrukcji.

Przykład Nazwa Opis
$a and $b I TRUE jeśli zarówno $a jak i $b są TRUE
$a or $b Lub TRUE jeśli $a lub $b jest TRUE
$a xor $b Wyłącznie-Lub TRUE jeśli $a lub $b jest TRUE, ale nie jednocześnie
! $a Nie TRUE jeśli $a nie jest TRUE
$a && $b I TRUE jeśli zarówno $a jak i $b są TRUE
$a || $b Lub TRUE jeśli $a lub $b jest TRUE

Więcej na temat wykorzystania tych operatorów znajdziesz w rozdziale dotyczącym warunków.

Operator łańcuchowy

Operator konkatenacji (‘.’ – kropka) służy do łączenia kilku ciągów w jedną całość.

<?
 
    $zmienna1 = "Wartość zmiennej \"zmienna2\" to";
    $zmienna2 = 5;
   
    echo $zmienna1." ".$zmienna2; // Powinno się wyświetlić:
                                  // Wartość zmiennej "zmienna2" to 5

?>

Jak widać na tym przykładzie, aby użyć niektórych znaków (między innymi cudzysłowów, jeśli ciąg podany jest cudzysłowach, znaków dolara, jeśli nie chcemy aby został potraktowany jako zmienna) trzeba zamienić go na tzw. sekwencję unikową, to znaczy przed niego wstawić znak odwrotnego ukośnika (“\“).

  • Czy artykuł był pomocny?
  • TAK   Nie
Tematy powiązane
Więcej informacji na forum dyskusyjnym:   Kliknij tutaj, aby przejść na forum.home.pl