Villkorade operatörer. PHP logiska operatörer



Det viktigaste i aktion given operatör - detta villkor. om översatt från engelska betyder om en... Villkoret accepteras som ett argument (vad som finns inom parentes). Ett booleskt uttryck eller en booleska variabel kan användas som villkor. Om det är enklare kommer betydelsen av uttrycket att vara följande:

Om (villkor) (
villkoret är uppfyllt, vi gör detta
}
annan
{
villkoret är inte uppfyllt, det gör vi annars
}
Jag hoppas att logiken för den villkorade operationen är klar. Låt oss nu titta på ett exempel.

$ a \u003d 5;
$ b \u003d 25;

// Nu uppmärksamhet! Skick: Om $ b är större än $ a
// Skyltar\u003e och< , как и в математике, обозначают больше и меньше
if ($ b\u003e $ a)
{
// om villkoret är uppfyllt utför vi den här åtgärden
echo "$ b är större än $ a";
}
annan
{
// om inte nöjd, så detta
echo "$ a är större än eller lika med $ b";
}
?>
Demonstration Hämta källor
Som ett resultat kommer skriptet att matas ut 25 mer än 5... Exemplet är ganska enkelt. Jag hoppas att allt är klart. Nu föreslår jag att situationen är svårare, där flera villkor måste uppfyllas. Varje nytt villkor kommer att innehålla efter huvudvillkoret om () - hjälp, som är skriven som annars om ()... Till slut, som vanligt annan.

En uppgift: Skolan testar. Skriptet måste beräkna poängen, veta villkoren för att få varje betyg och studentens poäng själv. Låt oss se hur man skriver detta och glöm inte att läsa kommentaren.

$ test \u003d 82; // Låt oss säga att en student skrev ett test för 82 poäng

// skriv det första villkoret för de fem
if ($ test\u003e 90)
{
// om villkoret är uppfyllt utför vi den här åtgärden.
eko "grad 5";
}
// &&-tecknet betyder "och, förening", att villkoret är uppfyllt om båda är sanna
// det vill säga poängen är mindre än 91 och mer än 80, sedan 4. Annars läses villkoren vidare
annat om ($ test< 91 && $test > 80)
{
eko "klass 4";
}
annat om ($ test< 81 && $test > 70)
{
eko "grad 3";
}
annan
{
echo "Jag borde skriva testet igen ...";
}
?>
Demonstration Hämta källor
Vår student som har tid att koppla av och skriva ett test får normalt klass 4! Och jag hoppas att principen om arbete är klar.

En kort registrering av funktionen för en villkorad operation är också möjlig, när du bara behöver en åtgärd om villkoret är uppfyllt.

$ ålder \u003d 19; // variabel med ålder

If ($ ålder\u003e 17) (
echo "Det är det! Jag kan göra vad som helst! Jag är redan $ ålder!";
}
Ganska ett trevligt exempel på en kort form för en villkorad operation. annan det är inte nödvändigt att skriva.

PHP jämförelse operatörer

Principen för den villkorade operationen är klar. Men som ni förstår finns det många fler sätt att jämföra. Låt oss ta en titt på en tabell med jämförelseoperatörer nedan.

Exempel Titel Resultat
$ a \u003d\u003d $ b Lika sant om $ a är lika med $ b
$ a \u003d\u003d\u003d $ b Identiskt sant om $ a är lika med $ b och båda variablerna är av samma typ
$ a! \u003d $ b Inte lika med True om $ a inte är lika med $ b
$ a \u003d\u003d\u003d $ b Inte identisk Sant om $ a inte är lika med $ b och båda typerna inte är desamma
$ a\u003e $ b Större än sant om $ a är större än $ b
$ a< $b Меньше чем True, если $a меньше, чем $b
$ a\u003e \u003d $ b Större än eller lika med True om $ a är större än eller lika med $ b
$ a<= $b Меньше или равно True, если $a меньше или равно $b
Tänk nu på operatörerna med exempel:

// i motsats till vana, \u003d betyder att tilldela ett värde till en variabel, och \u003d\u003d är lika
if ($ a \u003d\u003d 5) (
echo "$ a är 5"; // skriver ut "5 är 5"
) annat (
echo "$ a är inte lika med 5";
}

Om ($ a! \u003d 6) (
echo "$ a är inte lika med 6"; // kommer att skriva ut "5 är inte lika med 6". Nödvändigt i fall av förnekande
) annat (
echo "$ a är på något sätt lika med 6";
}

// med mer och mindre tror jag att allt är klart. Därför är exemplet mer komplicerat
if ($ a<= 6){
echo "$ a är mindre än eller lika med 6"; // kommer att skriva ut "5 är mindre än eller lika med 6"
) annat (
echo "$ a är större än 6";
}

PHP logiska operatörer

Det finns tillfällen när du inte behöver jämföra en variabel utan två eller flera samtidigt i ett tillstånd. För detta finns det logiska operatörer .

Exempel Titel Resultat
$ a och $ b Booleskt och SANT om både $ a och $ b är SANT.
$ a eller $ b Boolean "eller" SANT om antingen $ a eller $ b är SANT.
$ a xor $ b Exklusivt "eller" SANT om $ a eller $ b SANT, men inte båda.
! $ a Negation är SANT om $ a inte är SANT.
$ a && $ b Boolean "och" SANT om både $ a och $ b är SANT.
$ a || $ b Boolean "eller" SANT om antingen $ a eller $ b är SANT.
Har redan märkt det för operationer och och eller finns det ytterligare operatörer? Detta görs för att prioritera komplexa jämförelseoperationer. I tabellen listas logiska operatörer i prioritetsordning: från lägst till högst, det vill säga || har företräde framför eller.

Vi passerar till exempel

$ a \u003d 5;
$ b \u003d 6;
$ c \u003d 7;

// villkor: Om 5 inte är lika med 6 (SANT) OCH 6 inte är lika med 7 (SANT)
if ($ a< 6 && $b != $c){
echo "Verkligen så!"; // kommer att skriva ut "Verkligen så!" eftersom Båda förhållandena är KORREKT
) annat (
eko "Ett av villkoren är inte sant";
}

// villkor: Om 6 inte är lika med 6 (FEL) ELLER 6 är inte lika med 7 (KORREKT)
if ($ b! \u003d 6 || $ b! \u003d $ c) (
echo "Det stämmer!"; // kommer att visa "Det stämmer!" minst ett av villkoren är KORREKT
) annat (
echo "Båda villkoren är inte sanna";
}

Ternary operatör

Jag föreslår att du kommer tillbaka till frågan om ternär kod senare. Jag kunde inte nämna det alls, eftersom det är en viktig konstruktion som avsevärt minskar storleken på koden. Jag föreslår att du tittar på koden direkt.

Koden i koden: (tillstånd)? värde a om sant: värde a om falskt

Således förkortar vi notationen om if-uttalandet. Denna operation är emellertid endast giltig när värden tilldelas en variabel. Låt oss nu titta på det färdiga exemplet.

// Ett exempel på att använda den ternära operatören
$ inställningar \u003d (tom ($ _ POST ["inställningar"]))? "Som standard": $ _POST ["inställningar"];

// Ovanstående kod liknar följande block med if / annars
if (tom ($ _ POST ["inställningar"])) (
$ inställningar \u003d "Standard"; // Om ingenting passeras lämnar vi "Standard"
) annat (
$ inställningar \u003d $ _POST ["inställningar"]; // Om godkänd, tilldelas $ inställningar det godkända värdet.
}
?>
Läs kodkommentarerna så ska allt vara klart.

Tack för din uppmärksamhet!


Lektionen täcker villkorade uttalanden php: if statement och switch statement

Php villkorliga uttalanden representeras av tre huvudkonstruktioner:

  • skick operatör om,
  • växla operatör växla
  • och ternär operatör.

Låt oss titta närmare på var och en av dem.

PHP om uttalande

Fig 3.1. Villkorligt IF-uttalande, förkortad version


Fikon. 3,2. IF ELSE villkorlig uttalande syntax


Fikon. 3,3. Komplett syntax för det villkorade IF annarsif-uttalandet

Låt oss sammanfatta:

Full syntax:

if (villkor) (// om villkoret är sant operatör1; operatör2;) annarsif (villkor) (operatör1; ...) annat (// om villkoret är falsk operatör1; operatör2;)

  • Den förkortade syntaxen kan innehåller inte en del av konstruktionen med annat och innehåller inte ett ytterligare villkor annars
  • I stället för funktionsordet annars, kan du skriva annat om (separat)
  • Det kan finnas flera annat i en om uttalande. Det första hittade annars om uttrycket lika med SANT kommer att köras.
  • Om det finns ett alternativt villkor annars, måste den andra klausulen komma sist i syntaxen.

Det villkorliga uttalandet kan använda en kolon: istället för lockiga hängslen. I detta fall slutar operatören med serviceordet endif

Fikon. 3,4. If och Endif villkorligt uttalande i php

Exempel:

if ($ x\u003e $ y): echo $ x. "större än". $ y; elseif ($ x \u003d\u003d $ y): // när du använder ":" kan du inte skriva separat annars om echo $ x. "är lika med". $ y; annars: echo $ x. "not\u003e and not \u003d". $ y; endif;

Viktig: När du använder en kolon istället för lockiga hängslen annars, kan du inte skriva med två ord!

Logiska operationer i ett skick

Följande operationer kan visas i if-klausulen inom parentes:

Exempel: kontrollera värdet på en numerisk variabel: om den är mindre än eller lika med 10, - ge ut ett meddelande "Antal mindre än eller lika med 10", i motsatt fall, meddela "Antalet är större än 10"


Beslut:

$ nummer \u003d 15; if ($ nummer<=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }

Block av php-kod kan brytas, tänk på ett exempel:

Exempel: Visa html-kod "Lika med 4"om variabeln $ a verkligen är 4


1 Lösning:
1 2 3 4

2 Lösning:

1 2 3 A är lika med 4

A är lika med 4

Php-jobb 3_1: Visa översättning av färger från av engelska språket till ryska, kontrollera värdet på variabeln (i vilken färgen tilldelas: $ a \u003d "blå")


Php-jobb 3_2: Hitta maximalt tre siffror

Jämförelseoperationer och lögnens regel

I if-konstruktionen måste det finnas ett logiskt uttryck eller en variabel inom parenteser, som betraktas ur synvinkel för logisk algebra och returnerar värden antingen sanna eller falska

De där. en enda variabel kan användas som villkor. Låt oss överväga ett exempel:

1 2 3 4 $ a \u003d 1; if ($ a) (echo $ a;)

$ a \u003d 1; if ($ a) (echo $ a;)

I exemplet kommer PHP-översättaren att överväga variabeln inom parentes för lögnens lögn:

LIE: s regel eller vad som anses vara felaktigt:

  • logisk Falsk
  • heltal noll ( 0 )
  • giltig noll ( 0.0 )
  • tom linje och linjen «0»
  • matris utan element
  • objekt utan variabler
  • speciell typ NULL

I det betraktade exemplet är sålunda variabeln $ a lika med en, villkoret kommer att vara sant och operatören ekar $ a; kommer att visa värdet på variabeln.

Php-jobb 3_3: ges en variabel a med ett strängvärde. Om a är lika med namnet, mata ut "Hej namn!", om a är lika med tomt värde, mata sedan ut "Hej främling!"

Logiska konstruktioner OCH ELLER och INTE i en villkorad operatör

  1. Ibland är det nödvändigt att se till att flera villkor uppfylls samtidigt. Då kombineras villkoren logisk operatör OCH — && :
  2. $ a \u003d 1; if ($ a\u003e 0 || $ a\u003e 1) (echo "a\u003e 0 eller a\u003e 1";)

  3. Använd för att indikera att villkoret är felaktigt logiskt INTE operatör — ! :
  4. 1 2 3 4 $ a \u003d 1; if (! ($ a< 0 ) ) { echo "a не < 0" ; }

    $ a \u003d 1; if (! ($ a<0)) { echo "a не < 0"; }

Växla PHP-uttalande

Omkopplaren eller "switch" ersätter flera på varandra följande om uttalanden. På så sätt jämför man en variabel med en uppsättning värden. Således är det den mest bekväma lösningen. för att organisera flera grenar.

Syntax:

1 2 3 4 5 6 7 8 9 10 switch ($ variabel) (case "value1": statement1; break; case "value2": statement2; break; case "value3": statement3; break; [default: statement4; break;])

switch ($ variabel) (case "value1": statement1; break; case "value2": statement2; break; case "value3": statement3; break;)

  • Operatören kan kontrollera både strängvärden (i vilket fall de anges i citattecken) och numeriska (utan citattecken).
  • Avbrottet i konstruktionen krävs. Den lämnar strukturen när villkoret är sant och uttalandet som motsvarar villkoret körs. Utan brytning kommer alla ärenden uttalas oavsett deras sanning.

Fikon. 3,5. Villkorlig switch-uttalande


Exempel: en matris med fulla maskulina namn ges. Kontrollera det första elementet i matrisen och, beroende på namnet, ge ut en hälsning med ett kort namn.


Beslut:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $ names \u003d array ("Ivan", "Peter", "Semyon"); switch ($ namn [0]) (case "Peter": echo "Hello, Petya!"; break; case "Ivan": echo "Hello, Vanya!"; break; case "Semyon": echo "Hello, Vanya! "; break; default: echo" Hej, $ namn! "; ha sönder; )

$ names \u003d array ("Ivan", "Peter", "Semyon"); switch ($ namn) (case "Peter": echo "Hello, Petya!"; break; case "Ivan": echo "Hello, Vanya!"; break; case "Semyon": echo "Hello, Vanya!"; break ; standard: echo "Hej, $ namn!"; break;)

Php-jobb 3_4:

  • Skapa en variabel $ dag och tilldela ett godtyckligt numeriskt värde till det
  • Använd omkopplaren för att mata ut frasen "Detta är en arbetsdag"om värdet på $ -dagsvariabeln faller inom intervallet mellan 1 och 5 (inklusive)
  • Skriv ut frasen "Det är en ledig dag"om värdet på variabeln $ dag är 6 eller 7
  • Skriv ut frasen "Okänd dag"om värdet på $ day-variabeln inte ligger i intervallet mellan 1 och 7 (inklusive)

Fyll i koden:

1 2 3 4 5 6 7 8 9 10 11 12 ... växla (...) (fall 1: fall 2: ... eko "Detta är en arbetsdag"; ha sönder; fall 6: ... standard: ...)

Växla (...) (fall 1: fall 2: ... eko "Detta är en arbetsdag"; paus; fall 6: ... standard: ...)

PHP ternär operatör

Ternary operatör, d.v.s. med tre operander, har en ganska enkel syntax, i vilken till vänster om? villkoret är skrivet, och till höger - två operatörer åtskilda av skylten:, till vänster om skylten körs operatören om villkoret är sant, och till höger om skylten: operatören körs om villkoret är felaktigt.

tillstånd? operator1: operator2;

Senast uppdaterad: 1.11.2015

I PHP kan vi använda olika operatörer: aritmetik, logisk etc. Låt oss överväga varje typ av operation.

Aritmetiska operationer

    + (tilläggsoperation)

    Till exempel $ a + 5

    - (subtraktion)

    Till exempel $ a - 5

    * (multiplikation)

    Till exempel $ a * 5

    / (division)

    Till exempel $ a / 5

    % (få återstoden av divisionen)

    Till exempel: $ a \u003d 12; echo $ a% 5; // är lika med 2

    ++ (öka / öka värdet med en)

    Till exempel ++ $ a

    Det är viktigt att förstå skillnaden mellan ++ $ a och $ a ++. Till exempel:

    $ a \u003d 12; $ b \u003d ++ $ a; // $ b är 13 eko $ b;

    Här läggs först till värdet på variabeln $ a, och därefter likställs dess värde med variabeln $ b. Det skulle vara annorlunda om uttrycket såg ut så här: $ b \u003d $ a ++; ... Här jämställdes först värdet på variabeln $ a med variabeln $ b, och sedan ökades värdet på variabeln $ a.

    - (minskning / minskning värde med en)

    Till exempel - $ a. Och precis som i fallet med ökningen finns det två typer av notering: - $ a och $ a--

Uppdragsoperationer

    Ställer in en variabel till ett specifikt värde: $ a \u003d 5

    Tillägg följt av tilldelning av resultatet. Till exempel: $ a \u003d 12; $ a + \u003d 5; echo $ a; // är lika med 17

    Subtraktion och efterföljande tilldelning av resultatet. Till exempel: $ a \u003d 12; $ a - \u003d 5; echo $ a; // är lika med 7

    Multiplikation följt av tilldelning av resultatet: $ a \u003d 12; $ a * \u003d 5; echo $ a; // är lika med 60

    Uppdelning följt av tilldelning av resultatet: $ a \u003d 12; $ a / \u003d 5; echo $ a; // är lika med 2.4

    Samkoppling av strängar med resultatuppgift. Gäller två rader. Om variabler inte lagrar strängar, men till exempel siffror, konverteras deras värden till strängar och sedan utförs operationen: $ a \u003d 12; $ a. \u003d 5; echo $ a; // lika med 125 // identiskt med $ b \u003d "12"; $ b. \u003d "5"; // är lika med 125

    Få återstoden från uppdelning med efterföljande tilldelning av resultatet: $ a \u003d 12; $ a% \u003d 5; echo $ a; // är lika med 2

Jämförelseoperationer

Jämförelseoperationer används vanligtvis i villkorade konstruktioner när det är nödvändigt att jämföra två värden och, beroende på resultatet av jämförelsen, utföra vissa åtgärder. Följande jämförelseoperationer är tillgängliga.

    Jämställdhetsoperatören jämför två värden och om de är lika returnerar det sant, annars returnerar det falskt: $ a \u003d\u003d 5

    Identitetsoperatören jämför också två värden, och om de är lika, returnerar det sant, annars returnerar det falskt: $ a \u003d\u003d\u003d 5

    Jämför två värden, och om de inte är lika, returnerar true, returnerar annars falskt: $ a! \u003d 5

    Jämför två värden, och om de inte är lika, returnerar true, returnerar annars falskt: $ a! \u003d\u003d 5

    Jämför två värden, och om det första är större än det andra, returnerar det sant, annars returnerar det falskt: $ a\u003e 5

    Jämför två värden, och om det första är mindre än det andra returnerar det sant, annars returnerar det falskt: $ a< 5

    Jämför två värden, och om den första är större än eller lika med den andra returnerar den sant, annars returnerar den falskt: $ a\u003e \u003d 5

    Jämför två värden, och om det första är mindre än eller lika med det andra, returnerar det sant, annars returnerar det falskt: $ a<= 5

Jämställdhets- och identitetsoperatör

Båda operatörerna jämför två uttryck och returnerar sant om uttrycka är lika. Men det finns skillnader mellan dem. Om två värden av olika typer tas i jämställdhetsoperationen, reduceras de till en - den som tolkarna finner optimal. Till exempel:

Uppenbarligen lagrar variabler olika värden av olika typer. Men när de jämförs kommer de att reduceras till samma typ - numeriskt. Och variabeln $ a konverteras till siffran 22. Och som ett resultat kommer båda variablerna att vara lika.

Eller, till exempel, kommer följande variabler också att vara lika:

$ a \u003d falsk; $ b \u003d 0;

För att undvika sådana situationer används ekvivalensoperationen, som inte bara tar hänsyn till värdet utan också variabeltypen:

$ a \u003d "22a"; $ b \u003d 22; if ($ a \u003d\u003d\u003d $ b) eko "lika"; annars ekar "inte lika";

Nu kommer inte variablerna att vara lika.

Ojämlikhetsoperatörerna! \u003d Och! \u003d\u003d fungerar på samma sätt.

Logiska operationer

Booleska operationer används ofta för att kombinera resultaten från två jämförelser. Till exempel måste vi utföra en viss åtgärd om flera villkor är sanna. Det är följande logiska operationer:

    Returnerar sant om båda jämförelserna återgår sant, annars returnerar falskt: $ a \u003d\u003d 5 && $ b \u003d 6

    Liknar &&: $ a \u003d\u003d 5 och $ b\u003e 6

    Returnerar sant om minst en jämförelseoperation returnerar sant, annars returnerar falsk: $ a \u003d\u003d 5 || $ b \u003d 6

    På samma sätt som operationen || : $ a< 5 or $b > 6

    Returnerar sant om jämförelseoperationen returnerar falsk:! ($ A\u003e \u003d 5)

    Returnerar sant om bara ett av värdena är sant. Om båda är sanna eller inget är sant, returnerar fel. Till exempel: $ a \u003d 12; $ b \u003d 6; om ($ a xor $ b) ekar "sant"; annars ekar "falskt";

    Här kommer resultatet av den logiska operationen att vara falsk, eftersom båda variablerna har ett visst värde. Låt oss ändra koden:

    $ a \u003d 12; $ b \u003d NULL; om ($ a xor $ b) ekar "sant"; annars ekar "falskt";

    Här kommer resultatet redan att vara sant eftersom värdet på en variabel inte är inställt. Om variabeln är NULL kommer dess värde i logiska operationer att betraktas som falskt

Bitvisa operationer

Bitvisa operationer utförs på enskilda bitar av ett nummer. Siffror beaktas i binärrepresentation, till exempel 2 i binärrepresentation 010, nummer 7 - 111.

    & (logisk multiplikation)

    Multiplikation utförs bitvis, och om båda operanderna har bitvärden lika med 1, återgår operationen 1, annars returneras numret 0. Exempel: $ a1 \u003d 4; // 100 $ b1 \u003d 5; // 101 echo $ a1 & $ b1; // är lika med 4

    Här är numret 4 i det binära systemet 100, och numret 5 är 101. Multiplicera siffrorna bit för bit och få (1 * 1, 0 * 0, 0 * 1) \u003d 100, det vill säga numret 4 i decimalformat.

    | (logiskt tillägg)

    Det ser ut som logisk multiplikation, operationen utförs också på binära siffror, men nu returneras en om minst ett nummer i den givna biten har ett. Till exempel: $ a1 \u003d 4; // 100 $ b1 \u003d 5; // 101 echo $ a1 | $ b1; // är lika med 5

    ~ (logisk negation)

    inverterar alla siffror: om värdet på siffran är 1, blir det lika med noll, och vice versa. $ b \u003d 5; echo ~ $ b;

    x<

    x \u003e\u003e y - flyttar antalet x till höger med y-siffror. Till exempel 16 \u003e\u003e 1 flyttar siffran 16 (som är 10.000 i binär) en siffra till höger, det vill säga den hamnar med 1000 eller 8 i decimal

Slå samman strängar

Punktoperatören används för att sammanfoga strängar. Låt oss till exempel sammanfoga flera rader:

$ a \u003d "Hej,"; $ b \u003d "världen"; echo $ a. $ b. "!";

Om variablerna inte representerar strängar, utan andra typer, till exempel siffror, konverteras deras värden till strängar och sedan sker strängkoncatenationsoperationen också.

Hej kära nybörjeprogrammerare. Låt oss fortsätta studera elementen som den består av.

I den här artikeln kommer vi att lära oss vad php-uttalanden är. Vi känner faktiskt till några av dem nästan från barndomen, bara vi känner dem som tecken (+, -, \u003d,!,?).

I php kallas de alla operatörer, vilket är ganska logiskt eftersom de utför en viss åtgärd eller operation.

Du kan till och med säga att alla utskrivbara tecken som inte är bokstäver eller siffror i php är operatörer. Men det är inte allt eftersom det finns operatörer som består av bokstäver.

Låt oss börja i ordning.

Aritmetiska operatörer

Aritmetiska operatörer används för att manipulera siffror.

+ - tilläggsoperatör;
- - subtraktionsoperatör;
/ - division operatör;
* - operatör av multiplikation;
% - operatör för att erhålla återstoden under uppdelning;
++ - operatör av inkrement med en (inkrement);
- - - operatör av minskning med en (minskning)

Vid skrivning används vanligtvis ett utrymme före och efter operatören. Detta görs enbart för att underlätta att läsa koden, även om detta gap inte påverkar någonting, och om så önskas kan du klara dig utan den.

Komplexa uttryck är sammansatta enligt de regler som accepteras i aritmetik, det vill säga multiplikation och delning har företräde framför tillägg och subtraktion, och när båda är närvarande i uttrycket är de senare inneslutna inom parentes.

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

När man utför åtgärden, delar ett heltal med ett heltal, om man får återstoden konverteras resultatet automatiskt till riktigt nummer (flytande punktnummer).

eko 8/3; //2.66666666666
?>

Antal tecken som visas för bråknummer, beror på satt värde i precisionsdirektivet som finns i php.ini. Detta är vanligtvis 12 tecken exklusive perioden.

% -Operatören används vanligtvis för att bestämma om ett nummer kan delas av ett annat utan resten eller inte.

eko 53328% 4; // 0
?>

Åtgärder med aritmetiska operatörer, med undantag av inkrement och minskning, kallas binär, eftersom de involverar två operander (term + term, utdelning / divisor, etc.)

Ökningen och minskningen görs unär, eftersom de involverar en operand. Finns det lite mer villkorad drift , där tre operander deltar.

Operatörerna för inkrement (++) och minskning (- -) gäller endast variabler.

Heltal med variabel typ (heltal)

$ nästa \u003d 3;
echo ++ $ nästa; // 4
?>

Sträng med variabel typ (sträng)

$ next \u003d "abc";
echo $ nästa; // abd
?>

Bokstaven "d" visas istället för bokstaven "c" eftersom den är nästa i alfabetet, och vi har ökat variabelns värde med en.

Exemplen visar åtgärder med ett steg, och du kan utföra åtgärder med en minskning på samma sätt.

Bitvisa operatörer

Bitvisa operatörer är utformade för att arbeta med binär data. Om någon inte har någon aning om vad det är kommer jag att förklara. Binära siffror Är nummer som 1001000011100000111000.

Eftersom sådana uppgifter nästan aldrig används i utvecklingen av webbplatser kommer vi inte att bygga på dem i detalj. Jag kommer bara att visa dig hur de ser ut så att du kan föreställa dig vad du har att göra när du möter sådana symboler.

& - bitvis förening OCH (och);
~ - bitvis negation (inte);
| - bitvis förening ELLER (eller);
^ - bitvis uteslutning ELLER (xor);
<< — сдвиг влево битового значения операнда;
\u003e\u003e - höger förskjutning av operandets bitvärde;

Möte med dessa operatörer är ganska troligt eftersom binär data används i stor utsträckning i utvecklingen av program för datorgrafik... Men för att studera dem, om någon behöver det, måste du gå igenom separat kurs på en annan resurs.

Jämförelseoperatörer

Jämförelseoperatörer är logiska operatörer och används för att jämföra variabler. Matriser och objekt kan inte jämföras med deras hjälp.

\u003e - operatören är större;
\u003d\u003e - operatören är större än eller lika;
< — оператор меньше;
<= — оператор меньше или равно;
\u003d\u003d - operatörens jämlikhet;
! \u003d - operatörens ojämlikhet;
\u003d\u003d\u003d - ekvivalensoperatör (värdet och typen av variabeln är lika);
! \u003d\u003d - operatör utan likvärdighet;

Som ett resultat av jämförelsen visas antingen en på skärmen, som motsvarar true (true), eller en tom sträng, som motsvarar falsk (falsk).

eko 1\u003e 0; // 1
eko 1< 0 ; // пустая строка
eko 1 \u003d\u003e 0; // 1
eko 1 \u003d\u003d 1; // 1
?>

Så i sig själva används jämförelsearbetare knappast. Deras huvudsakliga syfte är att arbeta i takt med if-uttalandet.

Villkorliga uttalanden om, annars, om

Villkorliga operatörer kallas så för att de är avsedda att testa ett visst villkor, beroende på vilken en eller annan åtgärd som utförs.

Som ett argument tar if-uttalandet en boolesisk variabel eller uttryck. Om villkoret är sant visas resultatet, om inte sant - en tom sträng.



if ($ nästa< $nexT)
{
echo "Risk för nederbörd"; // Visad möjlig nederbörd
}
?>

$ next \u003d "Luftfuktighet 80%";
$ nexT \u003d "Luftfuktighet 90%";
if ($ nästa\u003e $ nexT)
{
echo "Risk för nederbörd"; // Visa tom sträng
}
?>

Om du behöver ställa in två åtgärder i programmet, varav en kommer att utföras om värdet är sant, och det andra om det är falskt, används den andra operatören tillsammans med if-satsen

$ next \u003d "Luftfuktighet 80%";
$ nexT \u003d "Luftfuktighet 90%";
if ($ nästa\u003e $ nexT)
{
echo "Risk för nederbörd";
}
annan
{
echo "Ingen nederbörd förväntas";
}
?>

I detta fall kommer "nederbörd förväntas inte" att visas, och om "More" -tecknet i uttrycket ändras till "Mindre" kommer "Möjlig nederbörd" att visas. Det här är hur villkorade operatörer kontrollerar tillståndet och matar ut rätt resultat enligt det.

Mycket ofta blir det nödvändigt att ställa in mer än två villkor, och sedan används annars om operatören testar dem i följd.



if ($ nästa\u003e $ nexT)
{
echo "Jag ser";
}
elseif ($ nästa<= $nexT)
{
eko "Snow";
}
elseif ($ nästa\u003e \u003d $ nexT)
{
eko "Rain";
}
elseif ($ nästa \u003d\u003d $ nexT)
{
eko "torka";
}
annan
{
echo "Risk för nederbörd";
}
?>

Detta program visar "Snow". Om inget av villkoren passar, visas "nederbörd är möjligt".

Ett if-uttalande kan innehålla så många annat om block du vill, och bara ett annat uttalande.

Tillåten alternativt alternativ poster - utan lockiga hängslen. I det här fallet slutar raderna för if, annars, annarsif-uttalanden med en kolon, och hela konstruktionen slutar med endif-nyckelordet (operatör).

$ next \u003d "Luftfuktighet 50%";
$ nexT \u003d "Luftfuktighet 60%";
if ($ nästa<= $nexT):

eko "Snow";

elseif ($ nästa\u003e \u003d $ nexT):

eko "Rain";

elseif ($ nästa \u003d\u003d $ nexT):

eko "torka";

annan:

echo "Risk för nederbörd";
endif;
?>

Logiska operatörer

Logiska operatörer liknar bitvisa operatörer. Skillnaden mellan dem är att de förstnämnda arbetar med booleska variabler och den senare med siffror.

Logiska operatörer används när du behöver kombinera flera villkor, vilket kommer att minska antalet if-uttalanden, vilket i sin tur minskar risken för fel i din kod.

&& - anslutande union AND;
och - också OCH men med lägre prioritet;
|| - separera unionen OR;
eller - också OR, men med lägre prioritet;
xor - exklusivt ELLER-element;
! - förnekelse;

Lägre prioritet innebär att om båda operatörerna är närvarande, körs den med högre prioritet först.

I framtiden, på exempel på mer komplexa skript, kommer vi att förbli logiska operatörer mer detaljerade.

Uppdragsoperatör

Uppdragsoperatören \u003d tilldelar den vänstra operan och värdet på den högra.

$ nästa \u003d "Hej"
echo "Hej" // Hej
?>

Punktoperatör

Prickoperatören separerar heltalet från bråkdelen och sammanfogar flera strängar och ett nummer i en hel sträng.

$ nästa \u003d 22;
echo "Today is after". $ nästa. "frost förväntas"; // I dag efter 22 väntas frost
?>

Parentheses operatör

Precis som i matematik prioriterar parentesoperatören den åtgärd som ingår i dem.

Först exekveras data som ligger i parentes och sedan allt annat.

Lockig stagoperatör

Det finns tre sätt, eller till och med stil, i php för att placera lockiga hängslen.

1. BSD-stil - parentes vänsterinriktade.

if ($ nästa)
{

}

2.GNU-stil - konsoler är indragna från vänster

if ($ nästa)
{
echo "Hej kära nybörjeprogrammerare";
}

3. K&R-stil - parentesen öppnas i uttalande raden

if ($ nästa) (
echo "Hej kära nybörjeprogrammerare";
}

Från början måste du välja en av stilarna och i framtiden, bara när du skriver manus. Dessutom spelar det ingen roll vilken stil du föredrar. Det är viktigt att det under hela programmet är enhetligt.

Jag tror att det är tillräckligt för nu. I princip kan inte bara skyltar utan också funktioner och andra element vara operatörer, så det är mycket svårt att lista dem alla, och det har inget att göra med det.

Det räcker med att ha en uppfattning om de grundläggande grundläggande. Och resten kommer att analyseras med praktiska exempel.

En irländare vandrar i Sheremetyevo flygplats i tårar. En av de anställda beslutade att sympatisera:
- Missar du ditt hemland?
- Inte alls. Jag tappade bara allt bagage
- Hur kunde detta ha hänt?
- Jag förstår inte. Det verkar som om han anslöt kontakten

De två huvudsakliga uttalandena för att skapa tillståndsbaserade grenstrukturer är if och switch. Det mest använda är if-uttalandet, som används i villkorade hoppstrukturer. Å andra sidan, i vissa situationer, speciellt om du måste navigera i en av de många grenarna beroende på värdet på ett enda uttryck, och användningen av ett antal om uttalanden leder till mer komplex kod, blir switch-uttalandet mer praktiskt.

Innan du utforskar dessa operatörer måste du förstå Booleska uttryck och operationer.

Logiska operationer

Booleska operationer låter dig kombinera booleska värden (även kallade sanningsvärden) för att producera nya booleska värden. Som visas i tabellen nedan, i pHP-språk standardlogiska operationer (och, eller, inte och xor) stöds, varvid de två första har alternativa versioner.

PHP logiska operationer
Drift Beskrivning
och En operation vars resultat är sant om och bara om båda dess operander är sanna
eller En operation som utvärderar till ett verkligt värde om en av dess operander (eller båda) är sant
! En operation vars resultat är sant om dess enda operand (specificerad till höger om operationstecknet) är falsk och falsk om operanden är sann
xor En operation som utvärderar till sann om någon av dess operander (men inte båda) är sanna
&& Samma som och driftmen binder sina operander starkare jämfört med denna operation
|| Samma som eller, men binder sina operander tätare än detta

&& och || borde vara bekant för C-programmerare. kallas vanligtvis inte för att det blir negationen av den operand som den tillämpas på.

För att kontrollera om båda operanderna är Sanna, använd AND-operatören, som också kan skrivas som en dubbelampersand (&&). Både AND och && är logiska operatörer, den enda skillnaden är att && operatören har högre prioritet än AND-operatören. Detsamma gäller för operatörerna OR och || OCH operatör returnerar SANT endast om båda operanderna är Sanna; annars returneras FALSE.

För att kontrollera om minst en operand är SANT, använd OR-operatören, som också kan skrivas som en dubbel vertikal linje (||). Denna operatör returnerar SANT om minst en av operandema är SANT.

Subtila logiska fel kan visas i programmet när du använder OR-operatören. Om PHP upptäcker att den första operanden är SANT kommer den inte att utvärdera värdet på den andra operanden. Detta sparar körningstid, men du måste se till att koden den beror på korrekt arbete programmet placerades inte i den andra operanden.

XOR-operatören låter dig kontrollera om bara en av operandena är Sanna (men inte båda). Denna operatör returnerar SANT om en och bara en av operandema är SANN. Om båda operanderna är Sanna kommer operatören att returnera FALSE.

Du kan invertera ett booleskt värde med INTE-operatören, som ofta skrivs i formen utropstecken (!). Det returnerar SANT om operand är FALSE och FALSE om operand är SANT.

Tabellen nedan visar några booleska uttryck och deras resultat:

Jämförelseoperationer

Tabellen nedan visar jämförelsefunktioner som kan användas med antingen siffror eller strängar:

Jämförelseoperationer
Drift namn Beskrivning
== Lika En operation vars resultat är sant om dess operander är lika med varandra, annars falskt
!= Inte jämnlikt En operation vars resultat är falskt om dess operander är lika med varandra, annars är det sant
< Mindre Operation, vars resultat utvärderas till true om den vänstra operand är mindre än den rätta, annars utvärderas den till falsk
> Mer Funktion, vars resultat är sant om den vänstra operanden är större än den högra, annars är den falsk
<= Mindre eller lika En operation som utvärderar till ett verkligt värde om den vänstra operanden är mindre än eller lika med den högra operanden, annars utvärderas den till falsk
>= Mer eller lika En operation som utvärderar till ett verkligt värde om den vänstra operanden är större än eller lika med den högra operanden, annars utvärderas den till falsk
=== identiskt En operation vars resultat är sant om båda operanderna är lika med varandra och av samma typ, annars falska

Var noga med att inte göra ett mycket vanligt misstag - att inte förväxla tilldelningsoperatören (\u003d) med jämföraren (\u003d\u003d) operatören.

Verksamhetens prioritering

Naturligtvis bör du inte överanvända den programmeringsstil som sekvensen av operationer huvudsakligen beror på användningen av företrädesregler, eftersom kod som är skriven i den här stilen är svår för dem som senare kommer att studera den, men det bör noteras att jämförelseoperationer har högre prioritet än logiska operationer. Detta innebär att ett uttalande med ett kontrolluttryck som det nedan

PHP-kod $ var1 \u003d 14; $ var2 \u003d 15; if (($ var1< $var2) && ($var2 < 20)) echo "$var2 больше $var1 но меньше 20";

kan skrivas om som

PHP-kod ... if ($ var1< $var2 && $var2 < 20) ...

Om - annat uttalande

Instruktioner om tillåter exekvering av ett kodblock om det villkorade uttrycket i detta uttalande är SANT; annars körs inte kodblocket. Vilket uttryck som helst kan användas som villkor, inklusive tester för icke-nollvärde, jämlikhet, NULL som involverar variabler och värden som returneras av funktioner.

Det spelar ingen roll vilka individuella villkor som utgör den villkorade klausulen. Om villkoret är sant, då programkodinneslutna i lockiga hängslen (()). Annars ignorerar PHP det och går vidare till att kontrollera det andra villkoret, kontrollera alla villkor som du skrev ner tills det snubblar över uttalandet annan, varefter den automatiskt kör detta block. Det andra uttalandet är valfritt.

Syntaxen för if-uttalandet är:

If (villkorligt uttryck) (kodblock;)

Om det villkorade uttrycket utvärderas till SANT kommer kodblocket efter det att exekveras. I följande exempel, om variabeln $ användarnamn är inställd på "Admin", kommer den att matas ut välkomstmeddelande... Annars händer ingenting:

PHP-kod $ username \u003d "Admin"; if ($ username \u003d\u003d "Admin") (echo "Välkommen till admin sida.";)

Om ett block av programkod bara innehåller en instruktion, är lockiga hängslen valfritt, men det är en god vana att alltid sätta dem, eftersom de gör koden lättare att läsa och redigera.

Valfritt annat-uttalande är ett kodblock som körs som standard när villkorsuttrycket returnerar FALSE. Det andra uttalandet kan inte användas separat från if-uttalandet, eftersom annat inte har ett eget villkorligt uttryck. Det är, annars och om i din kod alltid ska vara tillsammans:

Om och annat uttalanden $ username \u003d "no admin"; if ($ användarnamn \u003d\u003d "Admin") (echo "Välkommen till admin sida.";) annars (echo "Välkommen till användarsidan.";)

Kom ihåg att stänga kodblocket i if-uttalandet med ett lockigt stöd om du lägger ett lockigt stöd i början av blocket. Det andra blocket måste också ha öppnande och stängande lockiga hängslen, som i if-blocket.

Det här är allt bra, utom när du behöver kontrollera flera villkor i rad. För detta är instruktionen lämplig elseif... Det låter dig kontrollera ytterligare villkortills ett sant hittas eller annars blocket nås. Varje annarsif-uttalande har sitt eget kodblock som placeras omedelbart efter det villkorade uttrycket för annarsif-uttalandet. Annat om uttalandet kommer efter if-uttalandet och före annat-uttalandet, om det finns något.

Syntaxen för annarsif-uttalandet är lite mer komplicerad, men nästa exempel hjälper dig att ta reda på det:

Kontrollera flera villkor $ username \u003d "Gäst"; if ($ username \u003d\u003d "Admin") (echo "Välkommen till admin-sidan.";) annarsif ($ username \u003d\u003d "Guest") (echo "No view available.";) else (echo "Welcome to the page användare. ";)

Här kontrolleras två villkor och beroende på värdet på $ användarnamnvariabeln, olika åtgärder... Och det finns fortfarande en möjlighet att göra något om variabelns värde skiljer sig från de två första.

Ternary operatör?:

Operatör ?: är en ternär (trippel) operatör som tar tre operander. Det fungerar som ett if-uttalande, men det returnerar värdet på ett av två uttryck. Det uttryck som ska utvärderas bestäms av det villkorade uttrycket. Kolon (:) fungerar som en uttrycksavskiljare:

(tillstånd)? evalu_if_condition_true: evalu_if_condition_false;

Exemplet nedan kontrollerar värdet och returnerar olika strängar beroende på dess värde (SANT eller FALSE):

Skapa ett meddelande med operatören?: $ inloggad \u003d SANT; $ user \u003d "Igor"; $ banner \u003d (! $ inloggad)? "Registrera!" : "Välkommen tillbaka, $ användare!"; echo $ banner;

Det är ganska uppenbart att ovanstående operatör motsvarar följande operatör:

PHP-kod $ inloggad \u003d SANT; $ user \u003d "Igor"; if (! $ inloggad) ($ banner \u003d "Registrera!";) annars ($ banner \u003d "Välkommen tillbaka, $ användare!";) echo $ banner;

Byt uttalande

Instruktioner växla jämför ett uttryck med flera värden. Som regel används en variabel som ett uttryck, beroende på vilket värde ett eller annat kodblock ska köras. Föreställ dig till exempel variabeln $ -handlingen, som kan ha värdena "ADD" (lägg till), "MODIFY" (ändra) och "DELETE" (ta bort). Omkopplingsmeddelandet gör det enkelt att definiera kodblocket som ska köras för vart och ett av dessa värden.

För att visa skillnaden mellan if- och switch-uttalanden, låt oss kontrollera en variabel mot flera värden. Exemplet nedan visar programkoden som implementerar en sådan kontroll baserad på if-uttalandet, och i följande exempel, baserat på switch-uttalandet:

Kontrollera att ett av flera värden uppfylls (om uttalande) if ($ action \u003d\u003d "ADD") (echo "Utför tillägg."; echo "Antalet instruktioner i varje block är obegränsat.";) elseif ($ action \u003d\u003d "MODIFY") (echo "Utför ändring.";) elseif ($ action \u003d\u003d "DELETE") (echo "Utför radering.";) Kontrollera att ett av flera värden överensstämmer (switch-uttalande) switch ($ action) (case "ADD": echo "Execute addition."; echo "Antalet instruktioner i varje block är obegränsat."; break; case "MODIFY": echo "Execute ändring."; break; case "DELETE" : echo "Execute delete."; break;)

Switch-uttalandet tar värdet bredvid switch-nyckelordet och börjar jämföra det med alla värden bredvid nyckelorden fall, i den ordning de visas i programmet. Om ingen matchning hittas körs ingen av blocken. När en matchning hittats utförs motsvarande kodblock. Kodblocken nedan körs också - fram till slutet av kopplingsmeddelandet eller tills nyckelord ha sönder... Detta är användbart för att organisera en process med flera sekventiella steg. Om användaren redan har slutfört några steg kommer han att kunna fortsätta processen från den punkt där han slutade.

Ett uttryck bredvid en switch-sats måste returnera ett primitivt värde, till exempel ett nummer eller en sträng. En matris kan bara användas som den enskilt elementsom har ett elementärt typvärde.

Standardval

Om värdet på villkorsuttrycket inte stämmer överens med något av de alternativ som erbjuds i ärendeuttalningarna, låter omkopplaren i det här fallet göra något, som liknar det andra uttalandet om if, annars, annars konstruktion. För att göra detta måste du göra en instruktion som det sista alternativet i vallistan standard:

Generera ett felmeddelande med standardförklaringen $ action \u003d "REMOVE"; switch ($ action) (case "ADD": echo "Execute addition."; echo "Antalet instruktioner i varje block är inte begränsat."; break; case "MODIFY": echo "Execute ändring."; break; case "DELETE" : echo "Execute delete."; break; default: echo "Error: $ action command is not valid,". "Endast kommandona ADD, MODIFY och DELETE kan användas.";)

Förutom det vanliga stöder switch-uttalandet alternativ syntax - konstruktion av nyckelord omkopplare / slutkopplaresom definierar början och slutet på ett uttalande istället för lockiga hängslen:

Bytesmeddelandet slutar med nyckelordet switch ($ action): case "ADD": echo "Execute Lägg till."; echo "Antalet instruktioner i varje block är inte begränsat."; ha sönder; fall "MODIFY": echo "Utför ändring."; ha sönder; fall "DELETE": echo "Kör radering."; ha sönder; standard: echo "Fel: $ action command not valid,". "endast kommandona ADD, MODIFY och DELETE kan användas."; endswitch;

Avbrott i avrättningen

Om bara ett kodblock som motsvarar ett specifikt värde ska utföras, bör nyckelordsbrottet infogas i slutet av det blocket. PHP-tolknär man stöter på sökordsavbrottet kommer det att hoppa till exekveringen av raden efter avslutningen lockigt stöd växla uttalanden (eller nyckelordet slutkoppling). Men om du inte använder brottmeddelandet, fortsätter kontrollen i de efterföljande fallgrenarna för switchkonstruktionen. Ett exempel visas nedan:

Vad händer när det inte finns några pausuttalanden $ action \u003d "MONTERANORDNING"; switch ($ action) (fallet "MONTERA ORDER": echo "Samla order.
"; case" PACKAGE ": echo" Pack.
"; case" SHIP ": echo" Leverera till kund.
"; }

Om variabeln $ -åtgärd är inställd på "MONTERA ORDER" kommer utgången från detta fragment att vara följande:

Samla beställningen. Att avsluta. Leverera till kunden.

Om vi \u200b\u200bantar att byggstadiet redan har passerat och åtgärdsvariabeln $ har värdet "PACKAGE", kommer följande resultat att erhållas:

Att avsluta. Leverera till kunden.

Ibland är frånvaron av brytande uttalanden användbara, som i exemplet ovan, där ordningssteg bildas, men i de flesta fall bör detta uttalande användas.

Datatyper Loops 1 2 3 4 5 6 7 8 9 10






2020 gtavrl.ru.