Wyłączny operator logiczny PHP lub. Warunkowa instrukcja if w PHP

PHP obsługuje standardowe operatory logiczne AND i && , OR i || ,! (nie) i XOR . Operatory logiczne umożliwiają porównanie wyników dwóch operandów (wartości lub wyrażenia) w celu ustalenia, czy jeden lub oba zwracają prawdę, czy fałsz, i decydują, czy kontynuować wykonywanie skryptu w oparciu o zwróconą wartość. Podobnie jak operatory porównania, operatory logiczne zwracają pojedynczą wartość logiczną - prawdę lub fałsz, w zależności od wartości po obu stronach operatora.

Logiczne OR (OR i ||)

Logiczny operator OR jest oznaczany jako OR lub || . Wykonuje logiczną operację OR na dwóch operandach. Jeśli jeden lub oba operandy mają wartość true, zwraca wartość true. Jeśli oba operandy mają wartość false, zwraca wartość false. Pewnie macie pytanie: po co zrobili dwie wersje jednego operatora? Znaczenie dwóch różne opcje Logiczny operator OR polega na tym, że działają one z różnymi priorytetami.

Najpierw przyjrzyjmy się, jak działa operator ||. . I tak, jeśli jeden lub oba operandy mają wartość true, zwraca wartość true. Jeśli oba operandy zwrócą wartości fałszywe, zwróci wartość false .

Operator OR działa tak samo jak operator ||. z jednym wyjątkiem, jeśli operator OR zostanie użyty z przypisaniem, najpierw obliczy i zwróci wartość lewego operandu, w przeciwnym razie działa dokładnie tak samo jak operator ||. , tj. jeśli jeden lub oba operandy mają wartość true, zwraca wartość true. Jeśli oba operandy zwrócą false, zwróci false .

Aby było jaśniejsze jak one działają, podamy następujący przykład:

1 // Najpierw zmiennej przypisuje się wartość false, a następnie obliczany jest drugi argument // Akcja priorytetowa: ($var2 = false) lub true $var2 = false lub true; echo $zmienna2; // fałsz nie jest drukowany // ($var3 = 0) lub 3 $var3 = 0 lub 3; Echo "
$zmienna3"; // => 0 ?>

Wszelkie operatory porównania i logiczne można łączyć w więcej złożone projekty:

Warto wspomnieć o jeszcze jednej rzeczy ważny punkt, zarówno w odniesieniu do OR, jak i || . Logiczny operator OR rozpoczyna swoją ocenę od lewego operandu; jeśli zwróci wartość true, prawy operand nie zostanie oceniony. Oszczędza to czas wykonywania, ale należy zachować ostrożność, aby upewnić się, że kod, od którego może zależeć poprawna praca program nie został umieszczony w odpowiednim operandzie.

Logiczne AND (AND i &&)

Operator logiczny AND jest oznaczony jako AND lub &&. Wykonuje operację logiczną AND na dwóch operandach. Zwraca wartość true wtedy i tylko wtedy, gdy oba operandy mają wartość true. Jeśli jeden lub oba operandy zwrócą wartość false, operator zwróci wartość false. Znaczenie dwóch różnych wersji operatora „logicznego AND” jest takie samo, jak dwóch poprzednich operatorów, a mianowicie, że działają one z różnymi priorytetami.

Najpierw przyjrzyjmy się, jak działa operator &&. I tak, jeśli oba operandy mają wartość true, zwraca wartość true. Jeśli co najmniej jeden lub oba operandy zwrócą wartość false , zwróci również wartość false .

Operator AND działa tak samo jak operator && z jednym wyjątkiem: jeśli operator AND jest używany z przypisaniem, najpierw obliczy i zwróci wartość lewego operandu, w przeciwnym razie działa dokładnie tak samo jak operator &&. Jeśli przynajmniej jeden z jego operandów zwróci wartość false, zwróci również wartość false, a jeśli oba operandy zwrócą wartość false, zwróci wartość false.

Aby to zrozumieć, przyjrzyjmy się teraz, jak to działa w praktyce:

$bar3"; // => 9 ?>

Ekskluzywne LUB (XOR)

Wyłączny operator OR jest oznaczony jako XOR. Zwraca wartość true, jeśli jeden i tylko jeden z jej operandów ma wartość true. Jeśli oba operandy mają wartość true, operator zwróci wartość false.

Ponieważ operator XOR ma taki sam priorytet jak operatory AND i OR (niższy niż operator przypisania) i jest używany w wyrażeniu przypisania, najpierw ocenia i zwraca wartość lewego operandu.

6 $a1 = 19 xor 5 > 6; var_dump($a1); // => 19 var_dump(true xor true); // fałsz var_dump((2< 3) xor (5 != 5)); // true ?>

Logiczne NIE (!)

Operator logiczny NOT, zwany także negacją, jest oznaczony znakiem! . Jest to operator jednoargumentowy umieszczony przed pojedynczym operandem. Operator logiczny NOT służy do odwracania wartości logicznej swojego operandu i zawsze zwraca wartość true lub false.

Jeśli chcesz odwrócić wartość wyrażenia, na przykład a && b , będziesz musiał użyć nawiasów: !(a && b) . Również przy pomocy operatora! Możesz przekonwertować dowolną wartość x na jej odpowiednik logiczny, używając operatora: !!x dwukrotnie.

Lekcja obejmie instrukcje warunkowe php: instrukcję if i instrukcję switch

Instrukcje warunkowe php są reprezentowane przez trzy główne struktury:

Przyjrzyjmy się bliżej każdemu z nich.

Instrukcja PHP if

Rysunek 3.1. Warunkowa instrukcja IF, wersja skrócona


Ryż. 3.2. IF ELSE Składnia instrukcji warunkowej


Ryż. 3.3. Pełna składnia instrukcji warunkowej IF elseif

Podsumujmy:

Pełna składnia:

if (warunek) ( // jeśli warunek jest prawdziwy operator1; operator2; ) elseif(warunek) ( operator1; ... ) else ( // jeśli warunek jest fałszywy operator1; operator2; )

  • Skrócona składnia może nie zawierają części konstrukcji else i nie zawierają dodatkowy warunek inaczej
  • Zamiast słowa funkcyjnego elseif możesz napisać else if (osobno)
  • W jednej konstrukcji if może znajdować się kilka elementów elseif. Wykonane zostanie pierwsze wyrażenie elseif równe TRUE.
  • Jeśli istnieje alternatywny warunek elseif, klauzula else musi znajdować się na końcu składni.

W instrukcji warunkowej można użyć dwukropka: zamiast nawiasy klamrowe. W tym przypadku wypowiedź się kończy oficjalne słowo koniec

Ryż. 3.4. Instrukcja warunkowa If i Endif w php

Przykład:

if($x > $y): echo $x.” jest większe niż „.$y; elseif($x == $y): // podczas używania „:” nie można pisać osobno else if echo $x.” równa się „.$y; else: echo $x." not > i not = ".$y; endif;

Ważny: Używając w konstrukcji dwukropka zamiast nawiasów klamrowych, elseif nie można zapisać w dwóch słowach!

Operacje logiczne na warunku

Warunek if w nawiasie może zawierać następujące operacje:

Przykład: sprawdź wartość zmiennej numerycznej: jeśli jest mniejsza lub równa 10, wyświetl komunikat „liczba mniejsza lub równa 10”, w przeciwnym razie wyświetl komunikat „liczba większa niż 10”


Rozwiązanie:

$liczba=15; jeśli ($liczba<=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }

Bloki kodu PHP można złamać, spójrzmy na przykład:

Przykład: Wyświetl kod HTML na ekranie „a równa się 4”, jeśli zmienna $a jest naprawdę równa 4


1 rozwiązanie:
1 2 3 4

2 Rozwiązanie:

1 2 3 A równa się 4

A równa się 4

Zadanie php 3_1: Wyjściowe tłumaczenia kolorów z po angielsku na rosyjski, sprawdzając wartość zmiennej (w której przypisany jest kolor: $a="blue")


Zadanie php 3_2: Znajdź maksimum trzech liczb

Operacje porównawcze i reguła kłamstwa

Konstrukcja if musi zawierać wartość w nawiasach wyrażenie logiczne lub zmienna, która jest rozpatrywana z punktu widzenia algebry logicznej, zwracająca wartość albo prawda, albo fałsz

Te. pojedyncza zmienna może działać jako warunek. Spójrzmy na przykład:

1 2 3 4 $a = 1; if ($a) ( echo $a; )

$a=1; if ($a) ( echo $a; )

W przykładzie tłumacz język php rozważy zmienną w nawiasach dla reguły kłamstwa:

Zasada KŁAMSTWA, czyli tego, co uważa się za fałszywe:

  • logiczny FAŁSZ
  • całe zero ( 0 )
  • prawdziwe zero ( 0.0 )
  • pusta linia i sznurek «0»
  • tablica bez elementów
  • obiekt bez zmiennych
  • specjalny typ ZERO

Zatem w rozważanym przykładzie zmienna $a jest równa jeden, zatem warunek będzie prawdziwy i operator echo $a; wyświetli wartość zmiennej.

Zadanie php 3_3: podana jest zmienna a z wartością łańcuchową. Jeśli a jest równe nazwie, wydrukuj „Witam, imię!”, jeśli a jest równe pustej wartości, wówczas wyprowadź wynik "Witaj nieznajomy!"

Konstrukcje logiczne AND OR i NOT w operatorze warunkowym

  1. Czasami konieczne jest zapewnienie spełnienia kilku warunków jednocześnie. Następnie warunki są łączone operator logiczny AND — && :
  2. $a=1; if ($a>0 || $a>1) ( echo "a > 0 lub a > 1"; )

  3. Aby wskazać, czy warunek jest fałszywy, użyj operatora logicznego NIE — ! :
  4. 1 2 3 4 $a = 1; jeśli (! ($a< 0 ) ) { echo "a не < 0" ; }

    $a=1; jeśli (!($a<0)) { echo "a не < 0"; }

Zmień operatora PHP

Operator przełącznika lub „przełącznik” zastępuje kilka kolejnych konstrukcji if. W ten sposób porównuje jedną zmienną z wieloma wartościami. Jest to zatem najwygodniejszy sposób do organizowania wielooddziałów.

Składnia:

1 2 3 4 5 6 7 8 9 10 przełącznik ($zmienna) (przypadek „wartość1”: operator1; przerwa; przypadek „wartość2”: operator2; przerwa; przypadek „wartość3”: operator3; przerwa; [domyślnie: operator4; przerwa;])

switch($zmienna)( przypadek „wartość1”: operator1; przerwa; przypadek „wartość2”: operator2; przerwa; przypadek „wartość3”: operator3; przerwa; )

  • Operator może sprawdzić zarówno wartości łańcuchowe (wówczas są one podane w cudzysłowie), jak i wartości numeryczne (bez cudzysłowów).
  • Wymagana jest instrukcja break w konstrukcji. Opuszcza konstrukcję, jeśli warunek jest prawdziwy i wykonywany jest operator odpowiadający warunkom. Bez przerwy wszystkie instrukcje case zostaną wykonane niezależnie od ich prawdziwości.

Ryż. 3.5. Instrukcja warunkowego przełączania


Przykład: podana jest tablica z pełnymi imionami męskimi. Sprawdź pierwszy element tablicy i w zależności od nazwy wyświetl powitanie z krótką nazwą.


Rozwiązanie:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $names = tablica („Iwan”, „Piotr”, „Siemion” ) ; switch ($names [ 0 ] ) ( case "Piotr": echo "Witam, Petya!"; przerwa; case "Ivan": echo "Witam, Wania!"; przerwa; case "Siemion": echo "Cześć, Wania! " ; break ; default : echo "Witam, $imiona!"; przerwa ; )

$names=array("Iwan","Piotr","Siemion"); switch($names)( case "Piotr": echo "Witam, Petya!"; przerwa; case "Iwan": echo "Witam, Wania!"; przerwa; case "Siemion": echo "Witam, Wania!"; przerwa ; domyślnie: echo "Witajcie, $names!"; break; )

Zadanie php 3_4:

  • Utwórz zmienną $day i przypisz jej dowolną wartość liczbową
  • Używając konstrukcji switch, wydrukuj frazę „To dzień pracy”, jeżeli wartość zmiennej $day mieści się w zakresie liczb od 1 do 5 (włącznie)
  • Wydrukuj frazę „To dzień wolny”, jeśli wartość zmiennej $day jest równa cyfrom 6 lub 7
  • Wydrukuj frazę „Nieznany dzień”, jeżeli wartość zmiennej $day nie mieści się w zakresie liczb od 1 do 7 (włącznie)

Uzupełnij kod:

1 2 3 4 5 6 7 8 9 10 11 12 ... przełącznik (...) (przypadek 1: przypadek 2: ... echo „To dzień pracy”; przerwa ; przypadek 6: ... domyślny : ... )

Switch(...)( przypadek 1: przypadek 2: ... echo "To jest dzień roboczy"; przerwa; przypadek 6: ... domyślnie: ... )

Operator trójskładnikowy PHP

Operator trójskładnikowy, tj. z trzema operandami, ma dość prostą składnię, w której po lewej stronie ? zapisany jest warunek, a po prawej stronie dwa operatory oddzielone znakiem: , na lewo od znaku operator zostanie wykonany, jeśli warunek jest spełniony, a na prawo od znaku: operator zostanie wykonany, jeśli warunek zostanie spełniony FAŁSZ.

stan : schorzenie? operator1: operator2;

Ostatnia aktualizacja: 11.11.2015

W PHP możemy używać różnych operatorów: arytmetycznych, logicznych itp. Przyjrzyjmy się każdemu rodzajowi operacji.

Działania arytmetyczne

    + (operacja dodawania)

    Na przykład $a + 5

    - (operacja odejmowania)

    Na przykład $a - 5

    * (mnożenie)

    Na przykład $a * 5

    / (dział)

    Na przykład $a / 5

    % (uzyskując resztę z dzielenia)

    Na przykład: $a=12; echo $a% 5; // równa się 2

    ++ (zwiększ/zwiększ wartość o jeden)

    Na przykład ++$a

    Ważne jest, aby zrozumieć różnicę między wyrażeniami ++$a i $a++ . Na przykład:

    $a=12; $b=++$a; // $b równa się 13 echo $b;

    Tutaj najpierw do wartości zmiennej $a dodaje się jedynkę, a następnie jej wartość przyrównuje się do zmiennej $b. Byłoby inaczej, gdyby wyrażenie wyglądało tak: $b=$a++; . Tutaj najpierw wartość zmiennej $a była równa zmiennej $b, a następnie zwiększano wartość zmiennej $a.

    -- (zmniejszenie/zmniejszenie wartości o jeden)

    Na przykład --$a. A także, podobnie jak w przypadku przyrostu, istnieją dwa rodzaje zapisu: --$a i $a--

Operatory przypisania

    Przyrównuje zmienną do określonej wartości: $a = 5

    Dodawanie, a następnie przypisanie wyniku. Na przykład: $a=12; $a += 5; echo $a; // równe 17

    Odejmowanie, a następnie przypisanie wyniku. Na przykład: $a=12; $a -= 5; echo $a; // równa się 7

    Mnożenie i przypisanie wyniku: $a=12; $a *= 5; echo $a; // równa się 60

    Dzielenie i przypisanie wyniku: $a=12; $a /= 5; echo $a; // równe 2,4

    Połącz wiersze i przypisz wynik. Dotyczy dwóch linii. Jeżeli zmienne nie przechowują ciągów znaków, ale np. liczby, to ich wartości są konwertowane na ciągi znaków i wówczas wykonywana jest operacja: $a=12; $a.= 5; echo $a; // równe 125 // identyczne z $b="12"; $b.="5"; // równe 125

    Obliczanie reszty dzielenia i przypisywanie wyniku: $a=12; $a%= 5; echo $a; // równa się 2

Operacje porównawcze

Operacje porównania są zwykle stosowane w konstrukcjach warunkowych, gdy konieczne jest porównanie dwóch wartości i, w zależności od wyniku porównania, wykonanie określonych działań. Dostępne są następujące operacje porównania.

    Operator równości porównuje dwie wartości i jeśli są równe, zwraca prawdę, w przeciwnym razie zwraca fałsz: $a == 5

    Operator tożsamości również porównuje dwie wartości i jeśli są równe, zwraca wartość true, w przeciwnym razie zwraca wartość false: $a === 5

    Porównuje dwie wartości i jeśli nie są równe, zwraca prawdę, w przeciwnym razie zwraca fałsz: $a != 5

    Porównuje dwie wartości i jeśli nie są równe, zwraca prawdę, w przeciwnym razie zwraca fałsz: $a !== 5

    Porównuje dwie wartości i jeśli pierwsza jest większa od drugiej, zwraca wartość true, w przeciwnym razie zwraca wartość false: $a > 5

    Porównuje dwie wartości i jeśli pierwsza jest mniejsza od drugiej, zwraca wartość true, w przeciwnym razie zwraca wartość false: $a< 5

    Porównuje dwie wartości i jeśli pierwsza jest większa lub równa drugiej, zwraca wartość true, w przeciwnym razie zwraca wartość false: $a >= 5

    Porównuje dwie wartości i jeśli pierwsza jest mniejsza lub równa drugiej, zwraca wartość true, w przeciwnym razie zwraca wartość false: $a<= 5

Operator równości i tożsamości

Oba operatory porównują dwa wyrażenia i zwracają wartość true, jeśli wyrażenia są równe. Ale są między nimi różnice. Jeśli operacja równości przyjmuje dwie wartości różnych typów, wówczas są one redukowane do jednej - tej, którą interpreter uzna za optymalną. Na przykład:

Oczywiście zmienne przechowują różne wartości różnych typów. Ale po porównaniu zostaną zredukowane do tego samego typu - numerycznego. A zmienna $a zostanie zredukowana do liczby 22. Na koniec obie zmienne będą równe.

Lub na przykład następujące zmienne również będą równe:

$a = fałsz; $b = 0;

Aby uniknąć takich sytuacji, stosuje się operację równoważności, która uwzględnia nie tylko wartość, ale także typ zmiennej:

$a = "22a"; $b = 22; if($a===$b) echo "równe"; w przeciwnym razie echo „nie równe”;

Teraz zmienne nie będą równe.

Operatory nierówności != i !== działają podobnie.

Operacje logiczne

Operacje logiczne są zwykle używane do łączenia wyników dwóch operacji porównania. Na przykład musimy wykonać określoną akcję, jeśli spełnionych jest kilka warunków. Dostępne są następujące operacje logiczne:

    Zwraca wartość true, jeśli obie operacje porównania zwrócą wartość true, w przeciwnym razie zwraca wartość false: $a == 5 && $b = 6

    Podobnie do operacji &&: $a == 5 i $b > 6

    Zwraca wartość true, jeśli przynajmniej jedna operacja porównania zwraca wartość true, w przeciwnym razie zwraca wartość false: $a == 5 || $b = 6

    Podobny do operacji || : $a< 5 or $b > 6

    Zwraca wartość true, jeśli operacja porównania zwraca wartość false: !($a >= 5)

    Zwraca wartość true, jeśli tylko jedna z wartości jest prawdziwa. Jeśli oba są prawdziwe lub żadne z nich nie jest prawdziwe, zwraca wartość false. Na przykład: $a=12; $b=6; if($a xor $b) echo "prawda"; w przeciwnym razie powtórz „fałsz”;

    Tutaj wynik operacji logicznej będzie fałszywy, ponieważ obie zmienne mają określoną wartość. Zmieńmy kod:

    $a=12; $b=BEZ; if($a xor $b) echo "prawda"; w przeciwnym razie powtórz „fałsz”;

    Tutaj wynik będzie już prawdziwy, ponieważ wartość jednej zmiennej nie jest ustawiona. Jeżeli zmienna ma wartość NULL, to w operacjach logicznych jej wartość będzie traktowana jako fałszywa

Operacje bitowe

Operacje bitowe wykonywane są na poszczególnych bitach liczby. Liczby są uwzględniane w reprezentacji binarnej, na przykład 2 w reprezentacji binarnej to 010, liczba 7 to 111.

    & (mnożenie logiczne)

    Mnożenie wykonywane jest bitowo i jeśli oba operandy mają wartości bitowe równe 1, to operacja zwraca 1, w przeciwnym wypadku zwracana jest liczba 0. Na przykład: $a1 = 4; //100 $b1 = 5; //101 echo $a1 & $b1; // równa się 4

    Tutaj liczba 4 w systemie binarnym to 100, a liczba 5 to 101. Pomnóż liczby bitowo i otrzymaj (1*1, 0*0, 0 *1) = 100, czyli liczbę 4 w formacie dziesiętnym.

    | (dodatek logiczny)

    Podobnie jak w przypadku mnożenia logicznego, operację tę wykonuje się również na cyfrach binarnych, ale teraz zwracana jest jedynka, jeśli przynajmniej jedna liczba w danej cyfrze ma jedynkę. Na przykład: $a1 = 4; //100 $b1 = 5; //101 echo $a1 | $b1; // równa się 5

    ~ (logiczna negacja)

    odwraca wszystkie bity: jeśli wartość bitu wynosi 1, wówczas przyjmuje wartość zero i odwrotnie. $b = 5; echo ~$b;

    X<

    x>>y - przesuwa liczbę x w prawo o y cyfr. Na przykład 16>>1 przesuwa 16 (czyli 10000 w systemie binarnym) o jedno miejsce w prawo, co daje 1000 lub 8 w systemie dziesiętnym

Łączenie ciągów

Operator kropki służy do łączenia ciągów. Na przykład połączmy kilka linii:

$a="Witam,"; $b=" świat"; echo $a. $b. „!”;

Jeżeli zmienne reprezentują inne typy niż ciągi znaków, np. liczby, wówczas ich wartości są konwertowane na ciągi znaków i wtedy również następuje operacja łączenia ciągów.

Dwie główne instrukcje zapewniające warunkowe struktury rozgałęziające to if i switch. Najczęściej używana instrukcja if jest używana w strukturach skoków warunkowych. Z drugiej strony w pewnych sytuacjach, szczególnie jeśli trzeba poruszać się po jednej z wielu gałęzi w zależności od wartości pojedynczego wyrażenia, a użycie szeregu instrukcji if prowadzi do bardziej złożonego kodu, instrukcja switch staje się wygodniejsza .

Zanim nauczysz się tych operatorów, musisz zrozumieć wyrażenia i operacje logiczne.

Operacje logiczne

Operacje logiczne pozwalają łączyć wartości logiczne (zwane także wartościami rzeczywistymi) w celu utworzenia nowych wartości logicznych. Jak pokazano w poniższej tabeli, PHP obsługuje standardowe operatory logiczne (i, lub, nie i xor), przy czym pierwsze dwa mają alternatywne wersje.

Operacje logiczne w PHP
Operacja Opis
I Operacja, której wynik jest prawdziwy wtedy i tylko wtedy, gdy oba jej operandy są prawdziwe
Lub Operacja, której wynik jest prawdziwy, jeśli jeden z jej operandów (lub oba operandy) ma wartość true
! Operacja, której wynik jest prawdziwy, jeśli jej pojedynczy operand (podany po prawej stronie znaku operacji) jest fałszywy, a fałszywy, jeśli jej operand jest prawdziwy
xor Operacja, której wynik jest prawdziwy, jeśli którykolwiek z jej operandów (ale nie oba) jest prawdziwy
&& Taki sam jak operator i, ale wiąże swoje operandy ściślej niż ten operator
|| Taki sam jak operator or, ale wiąże jego operandy ściślej niż ten operator

Operacje && i || powinien być znany programistom C. Obsługa! jest zwykle wywoływana nie dlatego, że staje się negacją operandu, do którego jest stosowana.

Aby sprawdzić, czy oba operandy są PRAWDZIWE, używasz operatora AND, który można również zapisać jako podwójny ampersand (&&). Zarówno operatory AND, jak i && są operatorami logicznymi; jedyną różnicą jest to, że operator && ma wyższy priorytet niż operator AND. To samo dotyczy operatorów OR i ||. Operator AND zwraca PRAWDA tylko wtedy, gdy oba operandy mają wartość PRAWDA; w przeciwnym razie zwracana jest wartość FAŁSZ.

Aby sprawdzić, czy przynajmniej jeden operand ma wartość PRAWDA, należy użyć operatora OR, który można również zapisać jako podwójną pionową linię (||). Operator ten zwraca wartość PRAWDA, jeśli przynajmniej jeden z jego operandów ma wartość PRAWDA.

Podczas używania operatora OR w programie mogą pojawić się subtelne błędy logiczne. Jeśli PHP wykryje, że pierwszy operand ma wartość PRAWDA, nie oceni wartości drugiego operandu. Oszczędza to czas wykonywania, ale należy uważać, aby kod, od którego zależy prawidłowe działanie programu, nie został umieszczony w drugim operandzie.

Operator XOR pozwala sprawdzić, czy tylko jeden z operandów (ale nie oba) jest PRAWDZIWY. Ten operator zwraca wartość PRAWDA, jeśli jeden i tylko jeden z jego operandów ma wartość PRAWDA. Jeśli oba operandy mają wartość PRAWDA, operator zwróci FAŁSZ.

Wartość logiczną można odwrócić za pomocą operatora NOT, który często jest zapisywany jako wykrzyknik (!). Zwraca wartość PRAWDA, jeśli operand ma wartość FAŁSZ i FAŁSZ, jeśli operand ma wartość PRAWDA.

Poniższa tabela przedstawia niektóre wyrażenia logiczne i ich wyniki:

Operacje porównawcze

Poniższa tabela przedstawia operacje porównania, których można używać z liczbami lub ciągami znaków:

Operacje porównawcze
Operacja Nazwa Opis
== Równa się Operacja, której wynik jest prawdziwy, jeśli jej operandy są równe, lub fałszywy w przeciwnym razie
!= Nie równe Operacja, której wynik jest fałszywy, jeśli jej argumenty są równe, lub prawdziwy w przeciwnym razie
< Mniej Operacja, której wynik jest prawdziwy, jeśli lewy operand jest mniejszy niż prawy operand, lub fałszywy w przeciwnym razie
> Więcej Operacja, której wynik jest prawdziwy, jeśli lewy operand jest większy niż prawy, lub fałszywy w przeciwnym razie
<= Mniej lub równo Operacja, której wynik jest prawdziwy, jeśli lewy operand jest mniejszy lub równy prawemu operandowi, lub fałszywy w przeciwnym razie
>= Więcej lub równo Operacja, której wynikiem jest prawda, jeśli lewy operand jest większy lub równy prawemu operandowi, lub fałsz w przeciwnym razie
=== Identycznie Operacja, której wynikiem jest prawda, jeśli oba operandy są równe i tego samego typu, lub fałsz w przeciwnym razie

Bardzo częstym błędem, jaki należy popełnić, jest nie mylenie operatora przypisania (=) z operatorem porównania (==).

Priorytet operacji

Oczywiście nie należy nadużywać stylu programowania, w którym kolejność operacji jest ustalana głównie poprzez zastosowanie reguł pierwszeństwa, gdyż kod napisany w tym stylu jest trudny do zrozumienia dla tych, którzy go później studiują, jednak należy zauważyć, że porównanie operacje mają wyższy priorytet niż operacje logiczne. Oznacza to, że instrukcja z wyrażeniem kontrolnym, takim jak to poniżej

Kod PHP $zmienna1 = 14; $zmienna2 = 15; jeśli (($zmienna1< $var2) && ($var2 < 20)) echo "$var2 больше $var1 но меньше 20";

można przepisać jako

Kod PHP ...jeśli ($zmienna1< $var2 && $var2 < 20) ...

instrukcja if-else

Instrukcje Jeśli umożliwia wykonanie bloku kodu, jeśli wyrażenie warunkowe w tej instrukcji ma wartość PRAWDA; w przeciwnym razie blok kodu nie zostanie wykonany. Jako warunek można zastosować dowolne wyrażenie, w tym testy na wartość niezerową, równość, NULL obejmującą zmienne i wartości zwracane przez funkcje.

Nie ma znaczenia, które poszczególne warunki warunkowe tworzą zdanie warunkowe. Jeżeli warunek jest spełniony, wykonywany jest kod programu ujęty w nawiasy klamrowe (()). W przeciwnym razie PHP ignoruje to i przechodzi do sprawdzania drugiego warunku, sprawdzając wszystkie zapisane warunki warunkowe, aż trafi na instrukcję w przeciwnym razie, po czym automatycznie wykona ten blok. Instrukcja else jest opcjonalna.

Składnia instrukcji if jest następująca:

If (wyrażenie warunkowe) (blok kodu programu;)

Jeśli wynikiem oceny wyrażenia warunkowego jest PRAWDA, wówczas wykonany zostanie blok kodu programu znajdujący się po nim. W poniższym przykładzie, jeśli $username jest ustawione na "Admin", zostanie wyświetlona wiadomość powitalna. Inaczej nic się nie stanie:

Kod PHP $nazwa użytkownika = "Administrator"; if ($username == "Administrator") ( echo "Witamy na stronie administratora."; )

Jeśli blok kodu programu zawiera tylko jedną instrukcję, nawiasy klamrowe są opcjonalne, jednak dobrym zwyczajem jest ich zawsze używać, ponieważ ułatwiają czytanie i edycję kodu.

Opcjonalna instrukcja else to blok kodu wykonywany domyślnie, gdy wyrażenie warunkowe ma wartość FAŁSZ. Instrukcji else nie można używać oddzielnie od instrukcji if, ponieważ else nie ma własnego wyrażenia warunkowego. Oznacza to, że else i if powinny zawsze występować razem w kodzie:

instrukcje if i else $username = "brak administratora"; if ($username == "Administrator") ( echo "Witamy na stronie administratora."; ) else ( echo "Witamy na stronie użytkownika."; )

Pamiętaj, aby zamknąć blok kodu w instrukcji if nawiasem klamrowym, jeśli umieścisz nawias klamrowy na początku bloku. Blok else musi także zawierać otwierające i zamykające nawiasy klamrowe, podobnie jak blok if.

Wszystko jest w porządku, z wyjątkiem sytuacji, gdy musisz sprawdzić kilka warunków z rzędu. Instrukcje są do tego odpowiednie inaczej. Umożliwia testowanie dodatkowych warunków do momentu znalezienia wartości true lub osiągnięcia bloku else. Każda instrukcja elseif ma własny blok kodu umieszczony bezpośrednio po wyrażeniu warunkowym instrukcji elseif. Instrukcja elseif występuje po instrukcji if i przed instrukcją else, jeśli taka istnieje.

Składnia instrukcji elseif jest nieco bardziej skomplikowana, ale poniższy przykład pomoże Ci to zrozumieć:

Sprawdzanie wielu warunków $nazwa użytkownika = "Gość"; if ($username == "Administrator") ( echo "Witamy na stronie administratora."; ) elseif ($username == "Gość") ( echo "Przeglądanie niedostępne."; ) else ( echo "Witamy na stronie użytkownik." ;)

Tutaj sprawdzane są dwa warunki i w zależności od wartości zmiennej $username wykonywane są różne akcje. I nadal istnieje możliwość zrobienia czegoś, jeśli wartość zmiennej różni się od dwóch pierwszych.

Operator trójskładnikowy?:

Operator ?: jest operatorem trójskładnikowym (trójskładnikowym), który przyjmuje trzy operandy. Działa podobnie do instrukcji if, ale zwraca wartość jednego z dwóch wyrażeń. Wyrażenie, które zostanie ocenione, jest określane na podstawie wyrażenia warunkowego. Dwukropek (:) służy jako separator wyrażeń:

(stan : schorzenie) ? ocena_jeśli_warunek_true: ocena_jeśli_warunek_false;

Poniższy przykład sprawdza wartość i zwraca różne ciągi w zależności od tego, czy jest to PRAWDA, czy FAŁSZ:

Tworzenie wiadomości przy użyciu operatora ?: $zalogowany = PRAWDA; $użytkownik = "Igor"; $baner = (!$logged_in) ? "Rejestr!" : "Witaj ponownie, $użytkowniku!"; echo $baner;

Jest całkiem oczywiste, że powyższe stwierdzenie jest równoważne z następującym stwierdzeniem:

Kod PHP $zalogowany = PRAWDA; $użytkownik = "Igor"; if (!$logged_in) ( $banner = "Zarejestruj się!"; ) else ( $banner = "Witaj ponownie, $użytkownik!"; ) echo $banner;

instrukcja switch

Instrukcje przełącznik porównuje wyrażenie z wieloma wartościami. Z reguły jako wyrażenie używana jest zmienna, w zależności od wartości, której ma zostać wykonany konkretny blok kodu. Wyobraźmy sobie na przykład zmienną $action, która może mieć wartości „ADD”, „MODIFY” (zmień) i „DELETE” (usuń). Instrukcja switch ułatwia zdefiniowanie bloku kodu, który powinien zostać wykonany dla każdej z tych wartości.

Aby pokazać różnicę między instrukcjami if i switch, przetestujmy zmienną pod kątem wielu wartości. Poniższy przykład przedstawia kod programu realizujący taką kontrolę w oparciu o instrukcję if, a w poniższym przykładzie w oparciu o instrukcję switch:

Testowanie względem jednej z kilku wartości (instrukcja if) if ($akcja == "DODAJ") ( echo "Wykonaj dodawanie."; echo "Liczba instrukcji w każdym bloku jest nieograniczona."; ) elseif ($akcja == "MODYFIKUJ") ( echo "Dokonaj zmiany ."; ) elseif ($akcja == "USUŃ") ( echo "Wykonaj usunięcie."; ) Testowanie względem jednej z kilku wartości (instrukcja switch) switch ($akcja) ( case "ADD": echo "Wykonaj dodawanie."; echo "Ilość instrukcji w każdym bloku jest nieograniczona."; break; case "MODIFY": echo "Dokonaj zmiany."; break; case "DELETE": echo "Wykonaj usunięcie."; break; )

Instrukcja switch przyjmuje wartość znajdującą się obok słowo kluczowe switch i zaczyna porównywać go ze wszystkimi wartościami obok słów kluczowych sprawa, w kolejności ich lokalizacji w programie. Jeśli dopasowanie nie zostanie znalezione, żaden z bloków nie zostanie wykonany. Po znalezieniu dopasowania wykonywany jest odpowiedni blok kodu. Poniższe bloki kodu są również wykonywane - do końca instrukcji switch lub do słowa kluczowego przerwa. Jest to wygodne w przypadku organizacji procesu składającego się z kilku kolejnych kroków. Jeśli użytkownik wykonał już pewne kroki, będzie mógł kontynuować proces od miejsca, w którym przerwał.

Wyrażenie znajdujące się obok instrukcji switch musi zwracać wartość typu pierwotnego, na przykład liczbę lub ciąg znaków. Tablicy można używać tylko jako osobnego elementu, który ma wartość typu elementarnego.

Wybór domyślny

Jeśli wartość wyrażenia warunkowego nie pasuje do żadnej z opcji zaproponowanych w instrukcjach case, instrukcja switch w tym przypadku umożliwia wykonanie czegoś, podobnie jak instrukcja else konstrukcji if, elseif, else. W tym celu należy utworzyć instrukcję jako ostatnią opcję na liście wyboru domyślny:

Tworzenie komunikatu o błędzie przy użyciu instrukcji domyślnej $akcja = "USUŃ"; switch ($akcja) ( case "ADD": echo "Wykonaj dodawanie."; echo "Ilość instrukcji w każdym bloku jest nieograniczona."; break; case "MODIFY": echo "Dokonaj zmiany."; break; case "DELETE": echo "Wykonaj usunięcie."; break; default: echo "Błąd: polecenie $akcja jest niedozwolone, ". "można używać tylko poleceń ADD, MODIFY i DELETE."; )

Oprócz zwykłej instrukcja switch obsługuje alternatywną składnię - konstrukcję słowa kluczowego wyłącznik/wyłącznik krańcowy, definiując początek i koniec instrukcji zamiast nawiasów klamrowych:

Instrukcja switch kończy się słowem kluczowym endwitch przełącznik ($akcja): case "ADD": echo "Wykonaj dodawanie."; echo "Ilość instrukcji w każdym bloku jest nieograniczona."; przerwa; case "MODYFIKUJ": echo "Wykonaj modyfikację."; przerwa; case "DELETE": echo "Wykonaj usunięcie."; przerwa; domyślnie: echo "Błąd: polecenie $action jest nieprawidłowe, ". „Można używać wyłącznie poleceń ADD, MODIFY i DELETE.”; wyłącznik krańcowy;

Przerwij wykonanie

Jeżeli ma zostać wykonany tylko blok kodu odpowiadający określonej wartości, to na końcu tego bloku należy wstawić słowo kluczowe break. Gdy interpreter PHP napotka słowo kluczowe break, przystąpi do wykonania wiersza znajdującego się po zamykającym nawiasie klamrowym instrukcji switch (lub słowie kluczowym endswitch). Jeśli jednak nie użyjesz instrukcji break, sprawdzanie będzie kontynuowane w kolejnych gałęziach case konstrukcji switch. Poniżej znajduje się przykład:

Co się dzieje, gdy nie ma instrukcji break $action="ZŁOŻENIE ZAMÓWIENIA"; przełącznik ($akcja) ( case "ZAMÓWIENIE": echo "Złóż zamówienie.
"; case "PAKIET": echo "Paczka.
"; case "SHIP": echo "Dostarcz do klienta.
"; }

Jeśli zmienna $action jest ustawiona na „ASSEMBLE ORDER”, wynik tego fragmentu będzie następujący:

Odbierz zamówienie. Owinąć. Dostarcz do klienta.

Zakładając, że etap kompilacji został już zakończony, a zmienna $action jest ustawiona na „PAKIET”, uzyskany zostanie następujący wynik:

Owinąć. Dostarcz do klienta.

Czasami przydatny jest brak instrukcji break, jak w powyższym przykładzie, w którym tworzone są etapy zamówienia, ale w większości przypadków należy użyć tej instrukcji.

Typy danych Cykle 1 2 3 4 5 6 7 8 9 10

Witam drodzy początkujący programiści. Kontynuujmy badanie elementów tworzących.

W tym artykule dowiemy się, czym są operatory php. Tak naprawdę niektóre z nich znamy niemal od dzieciństwa, ale znamy je tylko jako znaki (+, -, =, !, ?).

W php wszyscy nazywają się operatorami, co jest całkiem logiczne, ponieważ wykonują określoną akcję lub operację.

Można nawet powiedzieć, że wszystkie znaki drukowalne, które nie są literą ani cyfrą, są operatorami w PHP. Ale to nie wszystko, ponieważ istnieją operatory składające się z liter.

Zacznijmy od porządku.

Operatory arytmetyczne

Operatory arytmetyczne służą do wykonywania operacji na liczbach.

+ jest operatorem dodawania;
— — operator odejmowania;
/ - operator dzielenia;
* — operator mnożenia;
% to operator pozwalający uzyskać resztę z dzielenia;
++ — operator zwiększania o jeden (przyrost);
— — — zmniejszenie o jednego operatora (zmniejszenie)

Podczas pisania spację zwykle umieszcza się przed i po operatorze. Odbywa się to wyłącznie w celu ułatwienia odczytania kodu, chociaż ta przestrzeń na nic nie wpływa i możesz się bez niej obejść, jeśli chcesz.

Wyrażenia złożone układa się według zasad przyjętych w arytmetyce, czyli mnożenie i dzielenie mają pierwszeństwo przed dodawaniem i odejmowaniem, a gdy w wyrażeniu występują oba, to te ostatnie ujęte są w nawiasy.

echo (6 + 7 ) * (7 + 8 ); // 195
?>

Podczas wykonywania akcji dzielenia liczby całkowitej przez liczbę całkowitą, w przypadku otrzymania reszty, wynik jest automatycznie konwertowany na liczbę rzeczywistą (liczbę zmiennoprzecinkową).

echo 8/3; //2.66666666666
?>

Liczba wyświetlanych znaków liczba ułamkowa, zależy od ustalić wartość w dyrektywie Precision znajdującej się w pliku php.ini. Zwykle jest to 12 znaków, nie licząc kropki.

Operator % jest powszechnie używany do określenia, czy dana liczba jest podzielna przez inną bez reszty, czy nie.

echo 53328% 4; //0
?>

Działania z operatory arytmetyczne, z wyjątkiem inkrementacji i dekrementacji, są wywoływane dwójkowy, ponieważ obejmują dwa operandy (termin + termin, dywidenda / dzielnik itp.)

Nazywa się akcje zwiększania i zmniejszania jednoargumentowy, ponieważ obejmują jeden operand. Czy jest jeszcze coś? operacja warunkowa, który obejmuje trzy operandy.

Operatory inkrementacji (++) i dekrementacji (- -) dotyczą tylko zmiennych.

Zmienna typu integer (liczby całkowite)

$następny = 3;
echo +$następny; // 4
?>

Ciąg typu zmiennej

$następny = "abc";
echo $następny; // ok
?>

Zamiast litery „c” wypisuje się literę „d”, ponieważ jest ona następna w alfabecie i zwiększyliśmy wartość zmiennej o jeden.

Przykłady pokazują akcje z przyrostem i w ten sam sposób można wykonywać akcje z dekrementacją.

Operatory bitowe

Operatory bitowe są przeznaczone do pracy z danymi binarnymi. Jeżeli ktoś nie ma pojęcia o co chodzi, to wyjaśniam. Liczby binarne to liczby takie jak 1001000011100000111000.

Ponieważ takie dane prawie nigdy nie są wykorzystywane przy tworzeniu stron internetowych, nie będziemy się nad nimi szczegółowo rozwodzić. Pokażę Ci tylko, jak one wyglądają, abyś podczas spotkania z takimi symbolami mógł sobie wyobrazić, z czym masz do czynienia.

& - połączenie bitowe AND (i);
~ — negacja bitowa (nie);
| — unia bitowa OR (lub);
^ — eliminacja bitowa OR (xor);
<< — сдвиг влево битового значения операнда;
>> — przesunięcie w prawo wartości bitowej operandu;

Jest całkiem prawdopodobne, że spotkasz się z tymi operatorami, ponieważ dane binarne są szeroko stosowane w tworzeniu oprogramowania. Grafika komputerowa. Ale aby je przestudiować, jeśli ktoś tego potrzebuje, będzie musiał wziąć osobny kurs na innym zasobie.

Operatory porównania

Operatory porównania są operatorami logicznymi i służą do porównywania zmiennych. Nie można za ich pomocą porównywać tablic i obiektów.

> - operator większy niż;
=> - operator większy lub równy;
< — оператор меньше;
<= — оператор меньше или равно;
== — operator równości;
!= — operator nierówności;
=== — operator równoważności (wartość i typ zmiennej są równe);
!== — operator nierównoważności;

W wyniku porównania na ekranie pojawia się albo jedno z nich, co odpowiada prawdzie (prawda), albo pusty ciąg znaków, co odpowiada fałszowi (fałsz).

echo 1 > 0; // 1
echo 1< 0 ; // пустая строка
echo 1 => 0 ; // 1
echo 1 == 1 ; // 1
?>

Zatem same operatory porównania prawie nigdy nie są używane. Ich głównym celem jest działanie w połączeniu z instrukcją if.

Instrukcje warunkowe if, else, elseif.

Operatory warunkowe są tak nazywane, ponieważ mają na celu testowanie określonego warunku, w zależności od tego, która konkretna akcja jest wykonywana.

Instrukcja if przyjmuje jako argument zmienną boolowską lub wyrażenie. Jeśli warunek jest spełniony, wyświetlany jest wynik, jeśli nie jest spełniony, wyświetlana jest pusta linia.



jeśli ($następny< $nexT)
{
echo "Możliwość wystąpienia opadów"; // Możliwe opady atmosferyczne
}
?>

$next = "Wilgotność powietrza 80%";
$nexT = "Wilgotność powietrza 90%";
if ($następny > $następnyT)
{
echo "Możliwość wystąpienia opadów"; // Wydrukuj pustą linię
}
?>

Jeśli program musi określić dwie akcje, z których jedna zostanie wykonana, jeśli wartość będzie prawdziwa, a druga, jeśli wartość będzie fałszywa, wówczas wraz z instrukcją if zostanie użyta instrukcja else

$next = "Wilgotność powietrza 80%";
$nexT = "Wilgotność powietrza 90%";
if ($następny > $następnyT)
{
echo "Możliwość wystąpienia opadów";
}
w przeciwnym razie
{
echo "Nie oczekuje się opadów";
}
?>

W takim przypadku zostanie wyświetlony komunikat „Nie oczekuje się opadów”, a jeśli w wyrażeniu zmienisz znak „Więcej” na „Mniej”, wyświetli się „Opady są możliwe”. W ten sposób operatory warunkowe sprawdzają warunek i zgodnie z nim wyświetlają poprawny wynik.

Bardzo często zachodzi potrzeba ustawienia więcej niż dwóch warunków, a następnie do ich sekwencyjnego sprawdzania używany jest operator elseif.



if ($następny > $następnyT)
{
echo „Widzę”;
}
elseif ($następny<= $nexT)
{
echo „Śnieg”;
}
elseif ($następny >= $następnyT)
{
echo „Deszcz”;
}
elseif ($następny == $następnyT)
{
echo „Susza”;
}
w przeciwnym razie
{
echo "Możliwość wystąpienia opadów";
}
?>

Ten program wyświetli „Śnieg”. Jeśli żaden z warunków nie zostanie spełniony, zostanie wyświetlony komunikat „Możliwość wystąpienia opadów”.

Instrukcja if może zawierać dowolną liczbę bloków elseif, ale tylko jedną instrukcję else.

Dozwolony Alternatywna opcja wpisy - bez nawiasów klamrowych. W tym przypadku linie instrukcji if, else, elseif kończą się dwukropkiem, a cała konstrukcja kończy się słowem kluczowym (operatorem) endif.

$next = "Wilgotność powietrza 50%";
$nexT = "Wilgotność powietrza 60%";
jeśli ($następny<= $nexT):

echo „Śnieg”;

elseif ($następny >= $następnyT):

echo „Deszcz”;

elseif ($następny == $następny):

echo „Susza”;

w przeciwnym razie:

echo "Możliwość wystąpienia opadów";
koniec;
?>

Operatory logiczne

Operatory logiczne są podobne do operatorów bitowych. Różnica między nimi polega na tym, że te pierwsze operują zmiennymi logicznymi, a drugie liczbami.

Operatory logiczne stosuje się w przypadkach, gdy zachodzi potrzeba połączenia kilku warunków, co zmniejszy liczbę instrukcji if, co z kolei zmniejszy prawdopodobieństwo wystąpienia błędów w kodzie.

&& - łącznik łączący AND;
i - także AND, ale z niższym priorytetem;
|| - spójnik rozdzielający OR;
lub - także OR, ale z niższym priorytetem;
xor - wyłączne LUB;
! - odmowa;

Niższy priorytet oznacza, że ​​jeśli obaj operatorzy są obecni, to ten z wyższym priorytetem zostanie wykonany jako pierwszy.

W przyszłości, korzystając z przykładów bardziej złożonych skryptów, bardziej szczegółowo zajmiemy się operatorami logicznymi.

Operator przypisania

Operator przypisania = przypisuje wartość prawego operandu do lewego operandu.

$next = „Witam”
echo "Witam" // Witam
?>

Kropka operatora

Operator kropki oddziela część całkowitą liczby od części ułamkowej i łączy kilka ciągów znaków oraz liczbę w jeden cały ciąg.

$następny = 22;
echo "Dzisiaj po" .$next. „oczekiwany jest przymrozek”; // Dziś po 22 spodziewany jest przymrozek
?>

Operator nawiasów

Podobnie jak w matematyce, operator nawiasów daje pierwszeństwo akcji zawartej w nich.

Najpierw wykonywane są dane zawarte w nawiasach, a potem cała reszta.

Operator nawiasów klamrowych

Istnieją trzy sposoby, a nawet style umieszczania nawiasów klamrowych w PHP.

1. Styl BSD – nawiasy są wyrównane do lewej strony.

jeśli ($następny)
{

}

2. Styl GNU – nawiasy są wyrównane z wcięciem od lewej krawędzi

jeśli ($następny)
{
echo „Witajcie drodzy początkujący programiści”;
}

3. Styl K&R - nawias otwiera się na linii operatora

jeśli ($następny)(
echo „Witajcie drodzy początkujący programiści”;
}

Od samego początku trzeba wybrać jeden ze stylów i w przyszłości pisząc skrypty używać tylko tego. Co więcej, nie ma żadnego znaczenia, jaki styl preferujesz. Ważne, żeby było to jednolite w całym programie.

Myślę, że to na razie wystarczy. W zasadzie operatorami mogą być nie tylko znaki, ale także funkcje i inne elementy, dlatego bardzo trudno jest je wszystkie wymienić i nie ma to sensu.

Wystarczy mieć pojęcie o podstawowych podstawach. A resztę przeanalizujemy na praktycznych przykładach.

Irlandczyk ze łzami w oczach spaceruje po lotnisku Szeremietiewo. Jeden z pracowników postanowił wyrazić współczucie:
– Czy tęsknisz za swoją ojczyzną?
- Zupełnie nie. Właśnie zgubiłem cały swój bagaż
- Jak to mogło się stać?
- Nie rozumiem siebie. Wygląda na to, że dobrze podłączyłem wtyczkę