Php logisk operatør eksklusiv eller. PHP: Logiske operatører

Sidste ændring: 1.11.2015

I PHP kan vi bruge forskellige operatører: aritmetisk, logisk osv. Lad os se på hver type operation.

Aritmetiske operationer

    + (tilføjelsesoperation)

    For eksempel $a + 5

    - (subtraktionsoperation)

    For eksempel $a - 5

    * (multiplikation)

    For eksempel $a * 5

    / (division)

    For eksempel $a / 5

    % (opnå resten af ​​divisionen)

    For eksempel: $a=12; ekko $a % 5; // er lig med 2

    ++ (øge/øge værdi med én)

    For eksempel ++$a

    Det er vigtigt at forstå forskellen mellem udtrykkene ++$a og $a++ . For eksempel:

    $a=12; $b=++$a; // $b er lig med 13 echo $b;

    Her lægges først man til værdien af ​​variablen $a, og derefter sidestilles dens værdi med variablen $b. Det ville være anderledes, hvis udtrykket så således ud: $b=$a++; . Her var først værdien af ​​variablen $a lig med variablen $b, og derefter blev værdien af ​​variablen $a øget.

    -- (mindske/mindske værdi med én)

    For eksempel --$a . Og også, som i tilfælde af inkrement, er der to typer optagelse: --$a og $a--

Opdragsoperatører

    Ligner en variabel til en bestemt værdi: $a = 5

    Tilføjelse efterfulgt af tildeling af resultatet. For eksempel: $a=12; $a += 5; ekko $a; // lig med 17

    Subtraktion efterfulgt af tildeling af resultatet. For eksempel: $a=12; $a -= 5; ekko $a; // er lig med 7

    Multiplikation efterfulgt af tildeling af resultatet: $a=12; $a *= 5; ekko $a; // er lig med 60

    Division efterfulgt af tildeling af resultatet: $a=12; $a /= 5; ekko $a; // lig med 2,4

    Sammensæt rækker og tildel resultatet. Gælder to linjer. Hvis variablerne ikke gemmer strenge, men for eksempel tal, konverteres deres værdier til strenge, og derefter udføres operationen: $a=12; $a .= 5; ekko $a; // lig med 125 // identisk med $b="12"; $b .="5"; // lig med 125

    At opnå resten af ​​divisionen og derefter tildele resultatet: $a=12; $a %= 5; ekko $a; // er lig med 2

Sammenligningsoperationer

Sammenligningsoperationer bruges normalt i betingede konstruktioner, når det er nødvendigt at sammenligne to værdier og, afhængigt af resultatet af sammenligningen, udføre visse handlinger. Følgende sammenligningsoperationer er tilgængelige.

    Lighedsoperatoren sammenligner to værdier, og hvis de er ens, returnerer sand, ellers returnerer falsk: $a == 5

    Identitetsoperatoren sammenligner også to værdier, og hvis de er ens, returnerer sand, ellers returnerer falsk: $a === 5

    Sammenligner to værdier, og hvis de ikke er ens, returnerer sand, ellers returnerer falsk: $a != 5

    Sammenligner to værdier, og hvis de ikke er ens, returnerer sand, ellers returnerer falsk: $a !== 5

    Sammenligner to værdier, og hvis den første er større end den anden, returnerer den sand, ellers returnerer falsk: $a > 5

    Sammenligner to værdier, og hvis den første er mindre end den anden, returnerer den sand, ellers returnerer den falsk: $a< 5

    Sammenligner to værdier, og hvis den første er større end eller lig med den anden, returnerer den sand, ellers returnerer falsk: $a >= 5

    Sammenligner to værdier, og hvis den første er mindre end eller lig med den anden, returnerer den sand, ellers returnerer den falsk: $a<= 5

Ligestillings- og identitetsoperatør

Begge operatorer sammenligner to udtryk og returnerer sand, hvis udtrykkene er ens. Men der er forskelle mellem dem. Hvis ligestillingsoperationen tager to værdier af forskellige typer, reduceres de til én - den, som tolken finder optimal. For eksempel:

Det er klart, at variabler gemmer forskellige værdier af forskellige typer. Men når de sammenlignes, vil de blive reduceret til den samme type - numerisk. Og variablen $a vil blive reduceret til tallet 22. Og i sidste ende vil begge variable være ens.

Eller for eksempel vil følgende variable også være ens:

$a = falsk; $b = 0;

For at undgå sådanne situationer bruges ækvivalensoperationen, som ikke kun tager højde for værdien, men også typen af ​​variablen:

$a = "22a"; $b = 22; if($a===$b) ekko "lige"; ellers ekko "ikke lige";

Nu vil variablerne ikke være ens.

Ulighedsoperatorerne != og !== fungerer på samme måde.

Logiske operationer

Logiske operationer bruges typisk til at kombinere resultaterne af to sammenligningsoperationer. For eksempel skal vi udføre en bestemt handling, hvis flere forhold er sande. Følgende logiske operationer er tilgængelige:

    Returnerer sand, hvis begge sammenligninger returnerer sand, ellers returnerer falsk: $a == 5 && $b = 6

    Svarende til &&-operationen: $a == 5 og $b > 6

    Returnerer sand, hvis mindst én sammenligningsoperation returnerer sand, ellers returnerer falsk: $a == 5 || $b = 6

    Svarende til operationen || : $a< 5 or $b > 6

    Returnerer sand, hvis sammenligningsoperationen returnerer falsk: !($a >= 5)

    Returnerer sand, hvis kun én af værdierne er sand. Hvis begge er sande, eller ingen af ​​dem er sande, returneres falsk. For eksempel: $a=12; $b=6; if($a xor $b) ekko "sand"; ellers ekko "falsk";

    Her vil resultatet af den logiske operation være falsk, da begge variable har en bestemt værdi. Lad os ændre koden:

    $a=12; $b=NULL; if($a xor $b) ekko "sand"; ellers ekko "falsk";

    Her vil resultatet allerede være sandt, da værdien af ​​en variabel ikke er indstillet. Hvis en variabel har værdien NULL, vil dens værdi i logiske operationer blive behandlet som falsk

Bit operationer

Bitoperationer udføres på individuelle bits af et tal. Tal betragtes i binær repræsentation, for eksempel er 2 i binær repræsentation 010, tallet 7 er 111.

    & (logisk multiplikation)

    Multiplikation udføres bitvis, og hvis begge operander har bitværdier lig med 1, returnerer operationen 1, ellers returneres tallet 0. For eksempel: $a1 = 4; //100 $b1 = 5; //101 echo $a1 & $b1; // er lig med 4

    Her er tallet 4 i det binære system 100, og tallet 5 er 101. Gang tallene bitvis og få (1*1, 0*0, 0 *1) = 100, det vil sige tallet 4 i decimalformat.

    | (logisk tilføjelse)

    I lighed med logisk multiplikation udføres operationen også på binære cifre, men nu returneres et, hvis mindst et tal i et givet ciffer har et et. For eksempel: $a1 = 4; //100 $b1 = 5; //101 echo $a1 | $b1; // er lig med 5

    ~ (logisk negation)

    inverterer alle bits: hvis bitværdien er 1, bliver den nul og omvendt. $b = 5; ekko ~$b;

    x<

    x>>y - flytter tallet x til højre med y-cifre. For eksempel, 16>>1 skifter 16 (som er 10000 i binært) ét sted til højre, hvilket resulterer i 1000 eller 8 i decimal

Sammenkædende strenge

Punktoperatoren bruges til at sammenkæde strenge. Lad os for eksempel forbinde flere linjer:

$a="Hej,"; $b=" verden"; ekko $a. $b. "!";

Hvis variablerne repræsenterer andre typer end strenge, såsom tal, så konverteres deres værdier til strenge, og derefter forekommer strengsammenkædningsoperationen også.

Hej kære nybegyndere. Lad os fortsætte med at studere de elementer, der udgør.

I denne artikel lærer vi, hvad php-operatører er. Faktisk har vi været bekendt med nogle af dem næsten siden barndommen, men vi kender dem kun som tegn (+, -, =, !, ?).

I php kaldes de alle operatorer, hvilket er ret logisk, da de udfører en bestemt handling eller operation.

Du kan endda sige, at alle printbare tegn, der ikke er et bogstav eller et tal, er operatorer i PHP. Men det er ikke alt, da der er operatører, der består af bogstaver.

Lad os starte i rækkefølge.

Aritmetiske operatorer

Aritmetiske operatorer bruges til at udføre operationer på tal.

+ er additionsoperatoren;
— — subtraktionsoperatør;
/ - divisionsoperatør;
* — multiplikationsoperator;
% er operatøren for at opnå resten under deling;
++ — operator for at øge med én (tilvækst);
— — — fald med én operatør (reduktion)

Ved skrivning placeres normalt et mellemrum før og efter operatøren. Dette gøres udelukkende for at lette læsningen af ​​koden, selvom denne plads ikke påvirker noget, og du kan undvære den, hvis du ønsker det.

Komplekse udtryk er sammensat efter de regler, der accepteres i regnestykket, det vil sige, at multiplikation og division har prioritet frem for addition og subtraktion, og når begge er til stede i udtrykket, er sidstnævnte indesluttet i parentes.

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

Når du udfører handlingen med at dividere et heltal med et heltal, i tilfælde af opnåelse af en rest, konverteres resultatet automatisk til et reelt tal (flydende kommatal).

ekko 8/3; //2,66666666666
?>

Antal tegn vist for brøktal, afhænger af indstillet værdi i præcisionsdirektivet fundet i php.ini-filen. Normalt er dette 12 tegn, der ikke tæller punktum.

Operatoren % bruges almindeligvis til at bestemme, om et tal er deleligt med et andet uden en rest eller ej.

ekko 53328 % 4 ; //0
?>

Handlinger med aritmetiske operatorer, med undtagelse af stigning og reduktion, kaldes binær, da de involverer to operander (term + term, dividende / divisor osv.)

Handlingerne med stigning og reduktion kaldes unær, da de involverer én operand. Er der nogle flere betinget drift, som involverer tre operander.

Operatørerne stigning (++) og reduktion (- -) gælder kun for variabler.

Variabel type heltal (heltal)

$næste = 3 ;
echo +$næste; // 4
?>

Variabel type streng

$next = "abc";
echo $næste; // abd
?>

Bogstavet "d" udskrives i stedet for bogstavet "c", fordi det er det næste i alfabetet, og vi øgede værdien af ​​variablen med én.

Eksemplerne viser handlinger med stigning, og på samme måde kan du udføre handlinger med stigning.

Bitvise operatører

Bitwise-operatorer er designet til at arbejde med binære data. Hvis nogen ikke aner hvad det er, vil jeg forklare. Binære tal er tal som 1001000011100000111000.

Da sådanne data næsten aldrig bruges i udvikling af websteder, vil vi ikke dvæle ved det i detaljer. Jeg vil bare vise dig, hvordan de ser ud, så når du støder på sådanne symboler, kan du forestille dig, hvad du har med at gøre.

& - bitvis forbindelse OG (og);
~ — bitvis negation (ikke);
| — bitwise union OR (eller);
^ — bitvis eliminering ELLER (xor);
<< — сдвиг влево битового значения операнда;
>> — skift til højre bitværdien af ​​operanden;

Det er ret sandsynligt, at du vil støde på disse operatører, da binære data er meget brugt i udviklingen af ​​softwareprogrammer. computer grafik. Men for at studere dem, hvis nogen har brug for det, bliver de nødt til at tage et separat kursus om en anden ressource.

Sammenligningsoperatører

Sammenligningsoperatorer er logiske operatorer og bruges til at sammenligne variabler. Arrays og objekter kan ikke sammenlignes ved hjælp af dem.

> - operator større end;
=> - større end eller lig med operator;
< — оператор меньше;
<= — оператор меньше или равно;
== — ligestillingsoperatør;
!= — ulighedsoperatør;
=== — ækvivalensoperator (værdien og typen af ​​variablen er ens);
!== — ikke-ækvivalensoperator;

Som et resultat af sammenligningen vises enten en på skærmen, som svarer til sand (sand), eller en tom streng, som svarer til falsk (falsk).

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

Så i sig selv bruges sammenligningsoperatører næsten aldrig. Deres hovedformål er at arbejde sammen med if-sætningen.

Betingede erklæringer hvis, andet, elseif.

Betingede operatører kaldes så, fordi de er designet til at teste en bestemt tilstand, afhængigt af hvilken en bestemt handling der udføres.

If-sætningen tager en boolesk variabel eller udtryk som et argument. Hvis betingelsen er sand, vises resultatet, hvis det ikke er sandt, vises en tom linje.



hvis ($næste< $nexT)
{
ekko "Chance for nedbør"; // Output Nedbør mulig
}
?>

$next = "Luftfugtighed 80%";
$nexT = "Luftfugtighed 90%";
if ($next > $nexT)
{
ekko "Chance for nedbør"; // Udskriv en tom linje
}
?>

Hvis programmet skal specificere to handlinger, hvoraf den ene udføres, hvis værdien er sand, og den anden, hvis værdien er falsk, så bruges else-sætningen sammen med if-sætningen.

$next = "Luftfugtighed 80%";
$nexT = "Luftfugtighed 90%";
if ($next > $nexT)
{
ekko "Chance for nedbør";
}
andet
{
ekko "Ingen nedbør forventes";
}
?>

I dette tilfælde vil "Nedbør forventes ikke" blive vist, og hvis du i udtrykket ændrer tegnet "Mere" til "Mindre", så vil "Nedbør er muligt" blive vist. Sådan kontrollerer betingede operatører en betingelse og udsender det korrekte resultat i henhold til den.

Meget ofte er der behov for at indstille mere end to betingelser, og derefter, for at kontrollere dem sekventielt, bruges elseif-operatoren.



if ($next > $nexT)
{
ekko "Jeg ser";
}
elseif ($næste<= $nexT)
{
ekko "Sne";
}
elseif ($next >= $nexT)
{
ekko "Regn";
}
elseif ($next == $nexT)
{
ekko "Tørke";
}
andet
{
ekko "Chance for nedbør";
}
?>

Dette program vil udsende "Sne". Hvis ingen af ​​betingelserne matchede, ville det vise "Chance of Precipitation."

En if-sætning kan indeholde så mange elseif-blokke, som du vil, men kun én else-sætning.

Tilladt Alternativ mulighed poster - uden krøllede seler. I dette tilfælde ender linjerne i if, else, elseif-udsagn med et kolon, og hele konstruktionen er søgeord(af operatøren) endif .

$next = "Luftfugtighed 50%";
$nexT = "Luftfugtighed 60%";
hvis ($næste<= $nexT):

ekko "Sne";

elseif ($next >= $nexT):

ekko "Regn";

elseif ($next == $nexT):

ekko "Tørke";

andet:

ekko "Chance for nedbør";
Afslut Hvis ;
?>

Logiske operatører

Logiske operatorer ligner bitvise operatorer. Forskellen mellem dem er, at førstnævnte opererer med logiske variable, og sidstnævnte med tal.

Logiske operatorer bruges i tilfælde, hvor du skal kombinere flere forhold, hvilket vil reducere antallet af if-sætninger, hvilket igen reducerer sandsynligheden for fejl i koden.

&& - forbindende konjunktion OG;
og - også OG, men med lavere prioritet;
|| - adskillende konjunktion ELLER;
eller - også OR, men med lavere prioritet;
xor - eksklusiv ELLER;
! - afslag;

Lavere prioritet betyder, at hvis begge operatører er til stede, udføres den med højere prioritet først.

I fremtiden vil vi ved at bruge eksempler på mere komplekse scripts dvæle ved logiske operatorer mere detaljeret.

Opgaveoperatør

Tildelingsoperatoren = tildeler værdien af ​​højre operand til venstre operand.

$next = "Hej"
echo "Hej" // Hej
?>

Operatør prik

Punktoperatoren adskiller heltalsdelen af ​​et tal fra brøkdelen og kombinerer flere strenge og et tal til en hel streng.

$næste = 22 ;
echo "I dag efter" .$next. "frost forventes"; // I dag efter 22 ventes frost
?>

Operator for parenteser

Som i matematik prioriterer parentesoperatoren handlingen indesluttet i dem.

Dataene i parentes udføres først, og derefter alle resten.

Operatør af krøllede seler

Der er tre måder, eller endda stilarter, til at placere krøllede seler i PHP.

1. BSD-stil - parenteser er justeret til venstre.

hvis ($næste)
{

}

2. GNU-stil - parenteser er justeret indrykket fra venstre kant

hvis ($næste)
{
echo "Hej kære begyndende programmører";
}

3. K&R-stil - parentes åbner på operatørlinjen

if ($næste)(
echo "Hej kære begyndende programmører";
}

Helt fra begyndelsen skal du vælge en af ​​stilene og i fremtiden, når du skriver scripts, skal du kun bruge den. Desuden er det slet ikke ligegyldigt, hvilken stil du foretrækker. Det er vigtigt, at det er ensartet gennem hele programmet.

Jeg tror, ​​det er nok for nu. I princippet kan ikke kun skilte, men også funktioner og andre elementer være operatører, så det er meget svært at liste dem alle sammen, og der er ingen mening.

Det er nok at have en idé om det grundlæggende. Og vi vil analysere resten ved hjælp af praktiske eksempler.

En irer vandrer rundt i Sheremetyevo Lufthavn i tårer. En af medarbejderne besluttede at sympatisere:
– Savner du dit hjemland?
- Slet ikke. Jeg har lige mistet al min bagage
- Hvordan kunne det her ske?
- Jeg forstår ikke mig selv. Det ser ud til, at jeg har sat stikket ordentligt i


Det vigtigste er at handle operatørdata- denne betingelse. hvis oversat fra engelsk betyder Hvis. Betingelsen accepteres som et argument (hvad der står i parentes). Tilstanden kan være logisk udtryk eller boolesk variabel. For at sige det enkelt vil betydningen af ​​udtrykket være denne:

Hvis (tilstand)(
betingelsen er opfyldt, gør dette
}
andet
{
betingelsen ikke er opfyldt, gør det anderledes
}
Jeg håber, logikken i den betingede operation er klar. Lad os nu se på et eksempel.

$a = 5;
$b = 25;

// Nu opmærksomhed! Betingelse: Hvis $b er større end $a
// Tegn > og< , как и в математике, обозначают больше и меньше
if($b > $a)
{
// hvis betingelsen er opfyldt, så udfør denne handling
echo "$b er større end $a";
}
andet
{
// hvis ikke udført, så dette
echo "$a er større end eller lig med $b";
}
?>
Demonstration Download kilder
Som et resultat vil scriptet output 25 mere end 5. Eksemplet er ret simpelt. Jeg håber alt er klart. Nu foreslår jeg at overveje en mere kompliceret situation, hvor flere betingelser skal være opfyldt. Hver ny betingelse vil indeholde efter hovedbetingelsen hvis()- hjælpemiddel, som skrives som andet hvis(). Til sidst bliver det som det plejer andet.

Opgave: Testen udføres på skolen. Scriptet skal beregne scoren, kende betingelserne for at opnå hver karakter og selve elevens score. Lad os se, hvordan man skriver dette, og glem ikke at læse kommentaren.

$test = 82; // Lad os sige, at en elev skrev en test med 82 point

// skriv den første betingelse for fem
if($test > 90)
{
// hvis betingelsen er opfyldt, så udfør denne handling.
ekko "Rating 5";
}
// Tegnet && betyder "og, forening", at betingelsen er opfyldt, hvis begge er sande
// det vil sige, at scoren er mindre end 91 og mere end 80, derefter 4. Ellers læses betingelserne videre
andet hvis ($test< 91 && $test > 80)
{
ekko "Rating 4";
}
andet hvis ($test< 81 && $test > 70)
{
ekko "Rating 3";
}
andet
{
echo "Vi burde skrive testen igen...";
}
?>
Demonstration Download kilder
Vores elev, der har tid til både at hvile og skrive en normal test modtager vurdering 4! Jeg håber, at driftsprincippet er klart.

Det er også muligt kort at registrere driften af ​​en betinget operation, når du kun har brug for en handling, hvis betingelsen er opfyldt.

$alder = 19; // variabel med alderen

Hvis ($alder > 17)(
echo "Det var det! Jeg kan gøre hvad jeg vil! Jeg er allerede $alder!";
}
Et ganske fint eksempel på en kort notation af en betinget operation. andet det er ikke nødvendigt at skrive.

Sammenligningsoperatører i PHP

Princippet om drift af en betinget operation er klart. Men som du forstår, er der mange flere måder at sammenligne på. Lad os se på tabellen nedenfor med sammenligningsoperatorer.

Eksempel på navneresultat
$a == $b er lig med sandt, hvis $a er lig med $b
$a === $b Identisk med True, hvis $a er lig med $b, og begge variabler er af samme type
$a != $b Ikke lig med Sand, hvis $a ikke er lig med $b
$a === $b Ikke identisk med True, hvis $a ikke er lig med $b, og begge typer ikke er ens
$a > $b Større end Sand, hvis $a er større end $b
$a< $b Меньше чем True, если $a меньше, чем $b
$a >= $b Større end eller lig med Sand, hvis $a er større end eller lig med $b
$a<= $b Меньше или равно True, если $a меньше или равно $b
Lad os nu se på operatørerne med eksempler:

// modsat vane = betyder at tildele en værdi til en variabel, og == er lig
hvis ($a == 5)(
ekko "$a er 5"; // vil udskrive "5 er lig med 5"
) andet (
echo "$a er ikke lig med 5";
}

Hvis ($a != 6)(
echo "$a er ikke lig med 6"; // vil udskrive "5 er ikke lig med 6". Nødvendig i tilfælde af afslag
) andet (
echo "$a er på en eller anden måde lig med 6";
}

// med mere og mindre tror jeg alt er klart. Derfor er eksemplet mere kompliceret
hvis ($a<= 6){
echo "$a er mindre end eller lig med 6"; // vil udskrive "5 er mindre end eller lig med 6"
) andet (
echo "$a er større end 6";
}

PHP logiske operatører

Der er tidspunkter, hvor du skal sammenligne ikke én variabel, men to eller flere på én gang i én tilstand. For dette er der logiske operatorer.

Eksempel på navneresultat
$a og $b Logisk "og" TRUE, hvis både $a og $b er TRUE.
$a eller $b Logisk "eller" TRUE, hvis enten $a eller $b er TRUE.
$a xor $b Eksklusivt "eller" SAND, hvis $a eller $b er SAND, men ikke begge.
! $a Negation af TRUE, hvis $a ikke er TRUE.
$a && $b Logisk "og" TRUE, hvis både $a og $b er TRUE.
$a || $b Boolean "eller" TRUE, hvis enten $a eller $b er TRUE.
Det har vi allerede bemærket for operationer Og Og eller er der yderligere operatører? Dette gøres for at prioritere komplekse sammenligningsoperationer. I tabellen er logiske operatorer anført i prioriteret rækkefølge: fra mindst til størst, dvs. f.eks. || har højere prioritet end eller.

Lad os gå videre til eksempler

$a = 5;
$b = 6;
$c = 7;

// betingelse: Hvis 5 ikke er lig med 6 (SAND) OG 6 ikke er lig med 7 (SAND)
hvis ($a< 6 && $b != $c){
ekko "Så sandt!"; // vil udskrive "Indeed so!" fordi BEGGE betingelser er SANDE
) andet (
echo "En af betingelserne er ikke sand";
}

// betingelse: Hvis 6 ikke er lig med 6 (FALSK) ELLER 6 er ikke lig med 7 (SAND)
if ($b != 6 || $b != $c)(
ekko "Det er det!"; // vil vise "Det er det!", fordi mindst EN af betingelserne er SAND
) andet (
echo "Begge forhold er falske";
}

Ternær operatør

Jeg foreslår, at du vender tilbage til spørgsmålet om ternær kode senere. Jeg kunne ikke lade være med at nævne det, da det er et vigtigt design, der reducerer kodestørrelsen markant. Jeg foreslår, at du ser på koden med det samme.

Kernen i koden:(tilstand) ? værdien af ​​en hvis sand: værdien af ​​en hvis falsk

Derfor forkorter vi if-sætningen. Denne operation er dog kun gyldig, når der tildeles værdier til en variabel. Lad os nu se på et færdigt eksempel.

// Eksempel på brug af den ternære operator
$settings = (tom($_POST["indstillinger"])) ? "Standard" : $_POST["indstillinger"];

// Ovenstående kode ligner den følgende blok ved hjælp af if/else
if (tom($_POST["indstillinger")) (
$settings = "Standard"; // Hvis intet overføres, så lad det være "Standard"
) andet (
$indstillinger = $_POST["indstillinger"]; // Hvis bestået, så tildeles $settings den beståede værdi.
}
?>
Læs kommentarerne til koden, og alt skal være klart.

Tak for din opmærksomhed!


Lektionen vil dække betingede php-sætninger: if-sætningen og switch-sætningen

PHP betingede udsagn er repræsenteret af tre hovedkonstruktioner:

  • tilstandsoperatør hvis,
  • skifte operatør kontakt
  • Og ternær operatør.

Lad os se nærmere på hver af dem.

PHP if-erklæring

Figur 3.1. Betinget operatør IF, kort version


Ris. 3.2. HVIS ANDET Syntaks for betinget erklæring


Ris. 3.3. Fuld syntaks for IF elseif betinget sætning

Lad os opsummere:

Fuld syntaks:

if (betingelse) ( // hvis betingelsen er sand operator1; operator2; ) elseif(condition) ( operator1; ... ) else ( // hvis betingelsen er falsk operator1; operator2; )

  • Den forkortede syntaks kan indeholder ikke dele af else-konstruktionen og indeholder ikke yderligere betingelse elseif
  • I stedet for funktionsordet elseif, kan du skrive else if (separat)
  • Der kan være flere elseifs i én, hvis konstruktionen. Det første elseif-udtryk, der er lig med TRUE, vil blive udført.
  • Hvis der er en alternativ elseif-betingelse, skal else-sætningen komme sidst i syntaksen.

En betinget erklæring kan bruge et kolon: i stedet for krøllede seler. I dette tilfælde slutter erklæringen officielt ord Afslut Hvis

Ris. 3.4. Betinget erklæring If og Endif i php

Eksempel:

if($x > $y): ekko $x." er større end ".$y; elseif($x == $y): // når du bruger ":" kan du ikke skrive separat, ellers hvis echo $x." er lig med ".$y; andet: echo $x." not > og ikke = ".$y; Afslut Hvis;

Vigtig: Når du bruger et kolon i stedet for krøllede seler i en konstruktion, kan andet ikke skrives med to ord!

Logiske operationer i en tilstand

Hvis-betingelsen i parentes kan indeholde følgende operationer:

Eksempel: kontroller værdien af ​​en numerisk variabel: hvis den er mindre end eller lig med 10, skal du vise en meddelelse "et tal mindre end eller lig med 10", ellers vise en meddelelse "et tal større end 10"


Løsning:

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

PHP-kodeblokke kan brydes, lad os se på et eksempel:

Eksempel: Vis html-kode på skærmen "a er lig med 4", hvis variablen $a virkelig er lig med 4


1 løsning:
1 2 3 4

2 Løsning:

1 2 3 A er lig med 4

A er lig med 4

php job 3_1: Output farveoversættelser fra på engelsk til russisk, og kontroller værdien af ​​variablen (hvor farven er tildelt: $a="blå")


php job 3_2: Find det maksimale af tre tal

Sammenligningsoperationer og løgnreglen

If-konstruktionen i parentes skal indeholde et logisk udtryk eller en variabel, som betragtes fra logikkens algebras synspunkt, og returnerer værdierne enten sande eller falske

De der. en enkelt variabel kan fungere som en betingelse. Lad os se på et eksempel:

1 2 3 4 $a = 1 ; hvis ($a) ( ekko $a; )

$a=1; hvis ($a) ( ekko $a; )

I eksemplet oversætteren php sprog vil overveje variablen i parentes for løgnreglen:

Løgnens regel eller hvad der anses for at være falsk:

  • logisk Falsk
  • hele nul ( 0 )
  • reelle nul ( 0.0 )
  • tom linje og snor «0»
  • array uden elementer
  • objekt uden variabler
  • speciel type NUL

I det betragtede eksempel er variablen $a således lig med én, og betingelsen vil følgelig være sand, og operatoren ekko $a; vil vise værdien af ​​variablen.

php job 3_3: en variabel a med en strengværdi er givet. Hvis a er lig med navnet, så udskriv "Hej, navn!", hvis a er lig med en tom værdi, så output "Hej fremmede!"

Logiske konstruktioner AND OR og NOT i den betingede operator

  1. Nogle gange er det nødvendigt at sørge for opfyldelse af flere betingelser samtidigt. Så kombineres betingelserne logisk operator OG — && :
  2. $a=1; if ($a>0 || $a>1) ( ekko "a > 0 eller a > 1"; )

  3. For at angive, om en betingelse er falsk, skal du bruge logisk operator IKKE — ! :
  4. 1 2 3 4 $a = 1 ; hvis (! ($a< 0 ) ) { echo "a не < 0" ; }

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

Skift operatør PHP

Switch-operatøren eller "switchen" erstatter flere på hinanden følgende if-konstruktioner. På den måde sammenligner den en variabel med flere værdier. Derfor er dette det mest bekvemme middel til at organisere multi-forgrening.

Syntaks:

1 2 3 4 5 6 7 8 9 10 switch ($variabel) ( case "værdi1" : operator1 ; break ; case "value2" : operator2 ; break ; case "value3" : operator3 ; break ; [ default : operator4 ; break ; ] )

switch($variabel)( case "value1": operator1; break; case "value2": operator2; break; case "value3": operator3; break; )

  • Operatøren kan kontrollere både strengværdier (så er de angivet i anførselstegn) og numeriske værdier (uden anførselstegn).
  • Pauseopgørelsen i byggeriet er påkrævet. Den forlader konstruktionen, hvis betingelsen er sand, og den operator, der svarer til betingelsen, udføres. Uden pause vil alle sagsfremstillinger blive eksekveret uanset deres sandhed.

Ris. 3.5. Betinget Switch-erklæring


Eksempel: en række med fulde mandsnavne er givet. Kontroller det første element i arrayet, og vis en hilsen med et kort navn, afhængigt af navnet.


Løsning:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $names = array ("Ivan", "Peter", "Semyon" ); switch ($names [ 0 ] ) ( case "Peter" : echo "Hej, Petya!" ; break ; case "Ivan" : echo "Hej, Vanya!" ; break ; case "Semyon" : echo "Hej, Vanya! " ; break ; default : echo "Hej, $navne!"; pause ; )

$names=array("Ivan","Peter","Semyon"); switch($names)( case "Peter": echo "Hej, Petya!"; break; case "Ivan": echo "Hej, Vanya!"; break; case "Semyon": echo "Hej, Vanya!"; break ; standard: ekko "Hej, $navne!"; break; )

php job 3_4:

  • Opret en $day-variabel og tildel den en vilkårlig numerisk værdi
  • Udskriv sætningen ved hjælp af switch-konstruktionen "Det er en arbejdsdag", hvis værdien af ​​$day-variablen falder inden for intervallet af tal fra 1 til 5 (inklusive)
  • Udskriv sætningen "Det er en fridag", hvis værdien af ​​variablen $dag er lig med tallene 6 eller 7
  • Udskriv sætningen "Ukendt dag", hvis værdien af ​​$day-variablen ikke falder inden for rækkevidden af ​​tal fra 1 til 7 (inklusive)

Udfyld koden:

1 2 3 4 5 6 7 8 9 10 11 12 ... switch (... ) ( case 1 : case 2 : ... ekko "Det er en arbejdsdag"; pause ; tilfælde 6: ... standard: ...)

Switch(...)( case 1: case 2: ... echo "Det er en arbejdsdag"; pause; case 6: ... default: ... )

PHP ternær operatør

Ternær operatør, dvs. med tre operander, har en ret simpel syntaks, hvor til venstre for ? betingelsen er skrevet, og til højre er to operatorer adskilt af tegnet: , til venstre for tegnet udføres operatoren hvis betingelsen er sand, og til højre for tegnet: operatoren udføres hvis betingelsen er falsk.

tilstand? operator1: operator2;