Je v PHP možná komplexná logika? Operácie v PHP

Lekcia bude zahŕňať podmienené príkazy php: príkaz if a príkaz switch

Podmienené príkazy PHP sú reprezentované tromi hlavnými konštruktmi:

  • operátor stavu ak,
  • prepínač operátora prepínač
  • A ternárny operátor.

Pozrime sa bližšie na každý z nich.

PHP príkaz if

Obrázok 3.1. Podmienený príkaz IF, skrátená verzia


Ryža. 3.2. IF ELSE Syntax podmieneného príkazu


Ryža. 3.3. Úplná syntax podmieneného príkazu IF elseif

Poďme si to zhrnúť:

Úplná syntax:

if (podmienka) ( // ak je podmienka pravdivá operátor1; operátor2; ) elseif(podmienka) (operátor1; ... ) else ( // ak je podmienka nepravdivá operátor1; operátor2; )

  • Skrátená syntax môže neobsahujú časti klauzuly else a neobsahujú dodatočnú podmienku elseif
  • Namiesto funkčného slova elseif môžete napísať else if (samostatne)
  • V jednej konštrukcii if môže byť niekoľko elseif. Vykoná sa prvý výraz elseif rovný TRUE.
  • Ak existuje alternatívna podmienka elseif, klauzula else musí byť posledná v syntaxi.

Podmienený príkaz môže použiť dvojbodku: namiesto zložených zátvoriek. V tomto prípade sa výrok končí pomocným slovom endif

Ryža. 3.4. Podmienený príkaz If a Endif v php

Príklad:

if($x > $y): echo $x.“ je väčšie ako „.$y; elseif($x == $y): // pri použití ":" nemôžete písať samostatne else if echo $x." sa rovná ".$y; else: echo $x." nie > a nie = ".$y; koniec Ak;

Dôležité: Pri použití dvojbodky namiesto zložených zátvoriek v konštrukcii, elseif nemožno napísať dvoma slovami!

Logické operácie v stave

Podmienka if v zátvorkách môže obsahovať nasledujúce operácie:

Príklad: skontrolujte hodnotu číselnej premennej: ak je menšia alebo rovná 10, zobrazí sa správa "číslo menšie alebo rovné 10", inak zobrazte správu "číslo väčšie ako 10"


Riešenie:

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

Bloky kódu PHP je možné zlomiť, pozrime sa na príklad:

Príklad: Zobrazenie html kódu na obrazovke "a rovná sa 4", ak sa premenná $a skutočne rovná 4


1 riešenie:
1 2 3 4

2 Riešenie:

1 2 3 A sa rovná 4

A sa rovná 4

php úloha 3_1: Zobrazte preklad farieb z angličtiny do ruštiny a skontrolujte hodnotu premennej (v ktorej je farba priradená: $a="blue")


php úloha 3_2: Nájdite maximálne tri čísla

Porovnávacie operácie a pravidlo lži

Konštrukcia if v zátvorkách musí obsahovať logický výraz alebo premennú, ktorá sa berie do úvahy z hľadiska algebry logiky a vracia hodnoty buď true alebo false

Tie. jedna premenná môže pôsobiť ako podmienka. Pozrime sa na príklad:

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

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

V tomto príklade bude prekladateľ jazyka PHP považovať premennú v zátvorkách za pravidlo lži:

Pravidlo klamstva alebo čo sa považuje za nepravdu:

  • logické Nepravdivé
  • celá nula ( 0 )
  • skutočná nula ( 0.0 )
  • prázdny riadok a reťazec «0»
  • pole bez prvkov
  • objekt bez premenných
  • špeciálny typ NULOVÝ

V uvažovanom príklade sa teda premenná $a rovná jednej, teda podmienka bude pravdivá a operátor echo $a; zobrazí hodnotu premennej.

php úloha 3_3: je daná premenná a s hodnotou reťazca. Ak sa a rovná názvu, vytlačte "Ahoj, meno!", ak sa a rovná prázdnej hodnote, potom výstup "Ahoj cudzinec!"

Logické konštrukcie AND OR a NOT v podmienenom operátore

  1. Niekedy je potrebné zabezpečiť splnenie viacerých podmienok súčasne. Potom sa podmienky spoja logický operátor AND — && :
  2. $a=1; if ($a>0 || $a>1) ( echo "a > 0 alebo a > 1"; )

  3. Ak chcete označiť, či je podmienka nepravdivá, použite logický operátor NIE — ! :
  4. 1 2 3 4 $a = 1; ak (! ($a< 0 ) ) { echo "a не < 0" ; }

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

Prepnite operátora PHP

Operátor prepínača alebo „prepínač“ nahrádza niekoľko po sebe nasledujúcich konštrukcií. Pritom porovnáva jednu premennú s viacerými hodnotami. Toto je teda najpohodlnejší prostriedok na organizovanie viacerých pobočiek.

Syntax:

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

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

  • Operátor môže kontrolovať reťazcové hodnoty (potom sú uvedené v úvodzovkách) aj číselné hodnoty (bez úvodzoviek).
  • Vyžaduje sa príkaz break v konštrukcii. Opustí konštrukciu, ak je podmienka pravdivá a vykoná sa operátor zodpovedajúci podmienke. Bez prestávky budú vykonané všetky vyhlásenia prípadu bez ohľadu na ich pravdivosť.

Ryža. 3.5. Vyhlásenie podmieneného prepnutia


Príklad: je uvedené pole s celými mužskými menami. Skontrolujte prvý prvok poľa a v závislosti od názvu zobrazte pozdrav s krátkym názvom.


Riešenie:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $names = pole ("Ivan" , "Peter" , "Semyon" ) ; switch ($names [ 0 ] ) ( case "Peter" : echo "Ahoj, Peťo!" ; break ; case "Ivan" : echo "Ahoj, Vanya!" ; break ; case "Semyon" : echo "Ahoj, Vanya! " ; break ; predvolene : echo "Ahoj, $names!"; prestávka ; )

$names=array("Ivan","Peter","Semyon"); switch($names)( case "Peter": echo "Ahoj Peťo!"; break; case "Ivan": echo "Ahoj, Vanya!"; break; case "Semyon": echo "Ahoj, Vanya!"; break ; predvolené: echo "Ahoj, $names!"; prestávka; )

php úloha 3_4:

  • Vytvorte premennú $day a priraďte jej ľubovoľnú číselnú hodnotu
  • Pomocou konštrukcie prepínača vytlačte frázu "Je pracovný deň", ak hodnota premennej $day spadá do rozsahu čísel od 1 do 5 (vrátane)
  • Vytlačte frázu "Je deň voľna", ak sa hodnota premennej $deň rovná číslam 6 alebo 7
  • Vytlačte frázu "Neznámy deň", ak hodnota premennej $day nespadá do rozsahu čísel od 1 do 7 (vrátane)

Vyplňte kód:

1 2 3 4 5 6 7 8 9 10 11 12 ... prepínač (... ) ( prípad 1 : prípad 2 : ... ozvena "Je pracovný deň"; prestávka ; prípad 6 : ... predvolené : ... )

Switch(...)( prípad 1: prípad 2: ... echo "Je pracovný deň"; prestávka; prípad 6: ... predvolené: ... )

PHP trojitý operátor

Ternárny operátor, t.j. s tromi operandmi má pomerne jednoduchú syntax, v ktorej je naľavo od ? podmienka je napísaná a napravo sú dva operátory oddelené znamienkom: , naľavo od znamienka sa operátor vykoná, ak je podmienka pravdivá, a napravo od znamienka: operátor sa vykoná, ak je podmienka falošný.

stav? operátor1: operátor2;

Dobrý deň, milí začínajúci programátori. Pokračujme v štúdiu prvkov, ktoré tvoria.

V tomto článku sa dozvieme, čo sú to operátori php. Niektoré z nich poznáme už takmer od detstva, no poznáme ich len ako znaky (+, -, =, !, ?).

V php sa všetky nazývajú operátori, čo je celkom logické, keďže vykonávajú špecifickú akciu alebo operáciu.

Dalo by sa dokonca povedať, že všetky vytlačiteľné znaky, ktoré nie sú písmenom alebo číslom, sú operátormi v PHP. Ale to nie je všetko, pretože existujú operátory pozostávajúce z písmen.

Začnime po poriadku.

Aritmetické operátory

Aritmetické operátory sa používajú na vykonávanie operácií s číslami.

+ je operátor sčítania;
— — operátor odčítania;
/ - operátor divízie;
* — operátor násobenia;
% je operátor na získanie zvyšku počas delenia;
++ — operátor pre zvýšenie o jedna (prírastok);
— — — zníženie o jeden operátor (zníženie)

Pri písaní sa zvyčajne pred a za operátorom umiestňuje medzera. Robí sa to len pre uľahčenie čítania kódu, hoci tento priestor nič neovplyvňuje a ak chcete, môžete sa bez neho zaobísť.

Zložité výrazy sa skladajú podľa pravidiel akceptovaných v aritmetike, to znamená, že násobenie a delenie majú prednosť pred sčítaním a odčítaním, a ak sú vo výraze prítomné oboje, posledné uvedené sú uzavreté v zátvorkách.

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

Pri vykonávaní akcie delenia celého čísla celým číslom sa v prípade získania zvyšku výsledok automaticky prevedie na reálne číslo (číslo s pohyblivou rádovou čiarkou).

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

Počet vytlačených číslic pre zlomkové číslo závisí od hodnoty nastavenej v direktíve presnosti nachádzajúcej sa v súbore php.ini. Zvyčajne je to 12 znakov bez započítania bodky.

Operátor % sa bežne používa na určenie, či je jedno číslo deliteľné druhým bezo zvyšku alebo nie.

echo 53328 % 4; //0
?>

Volajú sa operácie s aritmetickými operátormi, s výnimkou inkrementácie a dekrementácie binárne, pretože zahŕňajú dva operandy (člen + člen, dividenda / deliteľ atď.)

Akcie zvýšenia a zníženia sa nazývajú unárne, pretože zahŕňajú jeden operand. Je ešte nejaké podmienená operácia, ktorý zahŕňa tri operandy.

Operátory zvýšenia (++) a zníženia (- -) sa vzťahujú iba na premenné.

Typ premennej celé číslo (celé čísla)

$dalsi = 3 ;
echo + $ ďalší; // 4
?>

Reťazec premenného typu

$next = "abc";
echo $ďalší; // abd
?>

Namiesto písmena "c" sa vytlačí písmeno "d", pretože je ďalšie v abecede a hodnotu premennej sme zvýšili o jednotku.

Príklady zobrazujú akcie s prírastkom a rovnakým spôsobom môžete vykonávať akcie s prírastkom.

Bitové operátory

Bitové operátory sú navrhnuté na prácu s binárnymi údajmi. Ak niekto nevie, čo to je, vysvetlím. Binárne čísla sú čísla ako 1001000011100000111000.

Keďže takéto údaje sa pri vývoji webových stránok takmer vôbec nepoužívajú, nebudeme sa im podrobne venovať. Len vám ukážem, ako vyzerajú, aby ste si pri stretnutí s takýmito symbolmi vedeli predstaviť, s čím máte do činenia.

& - bitové spojenie AND (and);
~ — bitová negácia (nie);
| — bitové spojenie OR (alebo);
^ — bitová eliminácia OR (xor);
<< — сдвиг влево битового значения операнда;
>> — posunutie bitovej hodnoty operandu doprava;

Je dosť pravdepodobné, že sa s týmito operátormi stretnete, keďže binárne dáta sú široko používané pri vývoji počítačových grafických programov. Ale na ich štúdium, ak to niekto potrebuje, bude musieť absolvovať samostatný kurz o inom zdroji.

Porovnávacie operátory

Porovnávacie operátory sú logické operátory a používajú sa na porovnávanie premenných. Polia a objekty sa pomocou nich nedajú porovnávať.

> - operátor väčší ako;
=> - operátor väčší alebo rovný;
< — оператор меньше;
<= — оператор меньше или равно;
== — operátor rovnosti;
!= — operátor nerovnosti;
=== — operátor ekvivalencie (hodnota a typ premennej sú rovnaké);
!== — operátor neekvivalencie;

Výsledkom porovnania je, že na obrazovke sa zobrazí buď jeden, ktorý zodpovedá true (true), alebo prázdny reťazec, ktorý zodpovedá false (false).

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

Takže samotné porovnávacie operátory sa takmer nikdy nepoužívajú. Ich hlavným účelom je pracovať v spojení s príkazom if.

Podmienečné vyhlásenia if, else, elseif.

Podmienené operátory sa tak nazývajú, pretože sú navrhnuté tak, aby testovali určitú podmienku v závislosti od toho, ktorá konkrétna akcia sa vykonáva.

Príkaz if berie ako argument boolovskú premennú alebo výraz. Ak je podmienka pravdivá, zobrazí sa výsledok, ak nie, zobrazí sa prázdny riadok.



ak ($ ​​ďalší< $nexT)
{
echo "Možnosť zrážok"; // Výstup Možné zrážky
}
?>

$next = "Vlhkosť vzduchu 80%";
$nexT = "Vlhkosť vzduchu 90%";
if ($next > $nexT)
{
echo "Možnosť zrážok"; // Vytlačí prázdny riadok
}
?>

Ak program potrebuje špecifikovať dve akcie, z ktorých jedna sa vykoná, ak je hodnota true, a druhá, ak je hodnota nepravda, potom sa spolu s príkazom if použije aj príkaz else

$next = "Vlhkosť vzduchu 80%";
$nexT = "Vlhkosť vzduchu 90%";
if ($next > $nexT)
{
echo "Možnosť zrážok";
}
inak
{
echo "Nepredpokladajú sa žiadne zrážky";
}
?>

V tomto prípade sa zobrazí „Zrážky sa neočakávajú“ a ak vo výraze zmeníte znamienko „Viac“ na „Menej“, zobrazí sa „Zrážky sú možné“. Takto podmienené operátory kontrolujú podmienku a podľa nej vydávajú správny výsledok.

Veľmi často je potrebné nastaviť viac ako dve podmienky a na ich postupnú kontrolu sa potom použije operátor elseif.



if ($next > $nexT)
{
echo "vidím";
}
elseif ($next<= $nexT)
{
echo "Sneh";
}
elseif ($next >= $nexT)
{
echo "Dážď";
}
elseif ($next == $nexT)
{
echo "Sucho";
}
inak
{
echo "Možnosť zrážok";
}
?>

Tento program vypíše "Sneh". Ak žiadna z podmienok nevyhovuje, zobrazí sa „pravdepodobnosť zrážok“.

Príkaz if môže obsahovať toľko blokov elseif, koľko chcete, ale iba jeden príkaz else.

Alternatívna možnosť záznamu je povolená - bez zložených zátvoriek. V tomto prípade sa riadky príkazov if, else, elseif končia dvojbodkou a celá konštrukcia končí kľúčovým slovom (operátorom) endif.

$next = "Vlhkosť vzduchu 50%";
$nexT = "Vlhkosť vzduchu 60%";
ak ($ ​​ďalší<= $nexT):

echo "Sneh";

elseif ($next >= $nexT):

echo "Dážď";

elseif ($next == $nexT):

echo "Sucho";

inak:

echo "Možnosť zrážok";
koniec Ak ;
?>

Logické operátory

Logické operátory sú podobné bitovým operátorom. Rozdiel medzi nimi je v tom, že prvé pracujú s logickými premennými a druhé s číslami.

Logické operátory sa používajú v prípadoch, keď potrebujete skombinovať niekoľko podmienok, čím sa zníži počet príkazov if, čo následne zníži pravdepodobnosť chýb v kóde.

&& - spojovacia spojka AND;
a - tiež AND, ale s nižšou prioritou;
|| - oddeľovacia spojka OR;
alebo - tiež OR, ale s nižšou prioritou;
xor - výhradné OR;
! - odmietavý postoj;

Nižšia priorita znamená, že ak sú prítomné obidva operátory, ako prvý sa vykoná ten s vyššou prioritou.

V budúcnosti sa na príkladoch zložitejších skriptov budeme venovať logickým operátorom podrobnejšie.

Operátor pridelenia

Operátor priradenia = priradí hodnotu pravého operandu ľavému operandu.

$next = "Ahoj"
echo "Ahoj" // Dobrý deň
?>

Operátor bodka

Operátor bodka oddeľuje celú časť čísla od zlomkovej časti a spája niekoľko reťazcov a číslo do jedného celého reťazca.

$dalsi = 22 ;
echo "Dnes po" .$ďalšie. "očakáva sa mráz"; // Dnes po 22 sa očakáva mráz
?>

Operátor zátvoriek

Rovnako ako v matematike, operátor zátvoriek uprednostňuje akciu, ktorá je v nich uzavretá.

Najskôr sa vykonajú údaje v zátvorkách a potom všetky ostatné.

Operátor kučeravých zátvoriek

Existujú tri spôsoby alebo dokonca štýly umiestnenia zložených zátvoriek v PHP.

1. Štýl BSD – zátvorky sú zarovnané doľava.

ak ($next)
{

}

2. GNU štýl - zátvorky sú zarovnané odsadené od ľavého okraja

ak ($next)
{
echo „Ahoj milí začínajúci programátori“;
}

3. Štýl K&R - na riadku operátora sa otvorí zátvorka

if ($next)(
echo „Ahoj milí začínajúci programátori“;
}

Od samého začiatku si treba vybrať jeden zo štýlov a v budúcnosti pri písaní skriptov používať len ten. Navyše je úplne jedno, aký štýl preferujete. Je dôležité, aby bola jednotná počas celého programu.

Myslím, že nateraz to stačí. V zásade môžu byť operátormi nielen znaky, ale aj funkcie a ďalšie prvky, takže je veľmi ťažké ich všetky vymenovať a nemá zmysel.

Stačí mať predstavu o základných základoch. A zvyšok rozoberieme na praktických príkladoch.

Ír sa v slzách potuluje po letisku Šeremetěvo. Jeden zo zamestnancov sa rozhodol sympatizovať:
— Chýba ti vlasť?
- Vôbec nie. Práve som stratil všetku batožinu
- Ako sa to mohlo stať?
- Nerozumiem sebe. Zdá sa, že som zástrčku zapojil správne

Takže už vieme, ako spustiť kód, ktorý spĺňa určitú podmienku. Do tejto chvíle však mohla existovať iba jedna podmienka. Čo ak sa kód musí vykonať, ak je splnených niekoľko podmienok naraz?

Na vyriešenie tohto problému existujú logické operátory:

= 5 && $ cena<= 10) echo "Это число находится между 5 и 10"; ?>

Operátor &&, tiež nazývaný logické AND, skonvertuje hodnoty vľavo a vpravo na boolovský typ a potom sám vráti boolovskú hodnotu: true, ak sú ľavá a pravá strana pravdivé, alebo nepravda, ak je jedna z podmienok nepravdivá.

Inými slovami, ak sú obe podmienky splnené, operátor && vráti hodnotu true. To odráža názov operátora.

Prevádzkovateľ || alebo logické ALEBO vráti hodnotu true, keď je splnená aspoň jedna z dvoch podmienok:

5 || 1 > 2) echo "Podmienka je splnená."; ?>

Vo vyššie uvedenom kóde sa vykoná príkaz echo, pretože jedna z podmienok je splnená.

Všetky logické operátory v PHP

Medzi operátormi && a a, ako aj medzi || a alebo je tam drobný rozdiel - poradie vykonávania.

Ako viete, násobenie má vyššiu prioritu ako sčítanie. Takže operátory a a alebo majú nižšiu prioritu ako operátor priradenia =. Výsledok je možné vidieť na nasledujúcom príklade:

Zvláštne, však? Keďže y = má vyššiu prioritu, PHP bude kód interpretovať takto:

($var = true) a false;

Tie. najprv nastaví $var na true a potom vykoná operáciu true a false, čo nemá význam, pretože to neovplyvňuje hodnotu premennej.

Nižšie je uvedená tabuľka s prioritami operátora. S niektorými ste sa už stretli. Čím vyššie je operátor v tabuľke, tým má vyššiu prioritu.

  • ++ -- ~ (int) (float) (reťazec) (pole) (objekt) (bool) @
  • * / %
  • + - .
  • < <= > >=
  • == != === !== <> <=>
  • ? : (ternárny operátor)
  • = += -= *= **= /= .= %= &= |= ^= <<= >>=

Teraz môžeme určiť, že priorita porovnávacích operátorov (==, != atď.) je vyššia ako priorita logických operátorov. Tieto informácie budú pre nás užitočné pri dokončení úlohy.


Hlavná vec v konaní tohto operátora je stav. ak preložené z angličtiny znamená Ak. Podmienka je prijatá ako argument (to, čo je v zátvorkách). Podmienkou môže byť logický výraz alebo logická premenná. Zjednodušene povedané, význam výrazu bude takýto:

Ak (podmienka)(
podmienka je splnená, urobte to
}
inak
{
nie je splnená podmienka, urobte to inak
}
Dúfam, že logika podmienenej operácie je jasná. Teraz sa pozrime na príklad.

$a = 5;
$b = 25;

// Teraz pozor! Podmienka: Ak je $b väčšie ako $a
// Znaky > a< , как и в математике, обозначают больше и меньше
if($b > $a)
{
// ak je podmienka splnená, vykonajte túto akciu
echo "$b je väčšie ako $a";
}
inak
{
// ak nie je vykonaný, potom toto
echo "$a je väčšie alebo rovné $b";
}
?>
Demonštrácia Stiahnite si zdroje
Výsledkom bude výstup skriptu 25 viac ako 5. Príklad je celkom jednoduchý. Dúfam, že je všetko jasné. Teraz navrhujem zvážiť komplikovanejšiu situáciu, kde musí byť splnených niekoľko podmienok. Každá nová podmienka bude obsahovať po hlavnej podmienke ak()- pomocný, ktorý sa píše ako ináč Ak(). Nakoniec to bude ako obvykle inak.

Úloha: Testovanie sa vykonáva v škole. Scenár musí vypočítať skóre, pričom pozná podmienky na získanie každej známky a samotné skóre študenta. Pozrime sa, ako to napísať, a nezabudnite si prečítať komentár.

$test = 82; // povedzme, že študent napísal test s 82 bodmi

// napíš prvú podmienku pre päťku
if($test > 90)
{
// ak je podmienka splnená, vykonajte túto akciu.
echo "Hodnotenie 5";
}
// Znak && znamená "a, spojenie", že podmienka je splnená, ak sú obe pravdivé
// to znamená, že skóre je menej ako 91 a viac ako 80, potom 4. V opačnom prípade sa podmienky čítajú ďalej
inak, ak ($test< 91 && $test > 80)
{
echo "Hodnotenie 4";
}
inak, ak ($test< 81 && $test > 70)
{
echo "Hodnotenie 3";
}
inak
{
echo "Test by sme mali napísať ešte raz...";
}
?>
Demonštrácia Stiahnite si zdroje
Náš študent, ktorý má čas si oddýchnuť aj napísať normálny test, dostáva hodnotenie 4! Dúfam, že princíp fungovania je jasný.

Je tiež možné krátko zaznamenať operáciu podmienenej operácie, keď potrebujete akciu iba vtedy, ak je podmienka splnená.

$vek = 19; // premenlivé s vekom

Ak ($ vek > 17)(
echo "To je ono! Môžem si robiť čo chcem! Už mám $vek!";
}
Celkom pekný príklad krátkeho zápisu podmienenej operácie. inak nie je potrebné písať.

Porovnávacie operátory v PHP

Princíp fungovania podmienenej operácie je jasný. Ale ako viete, existuje oveľa viac spôsobov, ako porovnávať. Pozrime sa na tabuľku nižšie s porovnávacími operátormi.

Príklad Názov Výsledok
$a == $b Rovná sa True, ak $a sa rovná $b
$a === $b Identické ako True, ak $a sa rovná $b a obe premenné sú rovnakého typu
$a != $b Nerovná sa True, ak $a sa nerovná $b
$a === $b Nie je totožné s True, ak $a sa nerovná $b a oba typy nie sú rovnaké
$a > $b Väčšie ako True, ak $a je väčšie ako $b
$a< $b Меньше чем True, если $a меньше, чем $b
$a >= $b Väčšie alebo rovné ako True, ak $a je väčšie alebo rovné $b
$a<= $b Меньше или равно True, если $a меньше или равно $b
Teraz sa pozrime na operátorov s príkladmi:

// na rozdiel od zvyku = znamená priradenie hodnoty premennej a == sa rovná
if ($a == 5)(
echo "$a je 5"; // vypíše "5 sa rovná 5"
) inak (
echo "$a sa nerovná 5";
}

Ak ($a != 6)(
echo "$a sa nerovná 6"; // vypíše "5 sa nerovná 6". Nevyhnutné v prípade odmietnutia
) inak (
echo "$a sa nejako rovná 6";
}

// s viac a menej si myslím, že je všetko jasné. Preto je príklad zložitejší
ak ($a<= 6){
echo "$a je menšie alebo rovné 6"; // vypíše "5 je menšie alebo rovné 6"
) inak (
echo "$a je väčšie ako 6";
}

PHP logické operátory

Sú chvíle, keď potrebujete porovnať nie jednu premennú, ale dve alebo viac naraz v jednej podmienke. Na to existujú logické operátory.

Príklad Názov Výsledok
$a a $b Logické "a" PRAVDA, ak $a aj $b sú PRAVDA.
$a alebo $b Logické "alebo" TRUE, ak $a alebo $b je TRUE.
$a xor $b Exkluzívne "alebo" TRUE, ak $a alebo $b je PRAVDA, ale nie oboje.
! $a Negácia TRUE, ak $a nie je TRUE.
$a && $b Logické "a" PRAVDA, ak $a aj $b sú PRAVDA.
$a || $b Boolean "alebo" TRUE, ak $a alebo $b je TRUE.
To sme si už všimli pri operáciách A A alebo existujú ďalší operátori? Toto sa robí s cieľom uprednostniť zložité porovnávacie operácie. V tabuľke sú logické operátory zoradené podľa priority: od najmenšieho po najväčšiu, teda napríklad || má vyššiu prioritu ako alebo.

Poďme ďalej na príklady

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

// podmienka: Ak sa 5 nerovná 6 (PRAVDA) A 6 sa nerovná 7 (PRAVDA)
ak ($a< 6 && $b != $c){
echo "Skutočne áno!"; // vypíše "Skutočne áno!" pretože OBE podmienky sú PRAVDIVÉ
) inak (
echo "Jedna z podmienok nie je pravdivá";
}

// podmienka: Ak sa 6 nerovná 6 (NEPRAVDA) ALEBO 6 sa nerovná 7 (PRAVDA)
if ($b != 6 || $b != $c)(
echo "To je ono!"; // zobrazí "To je ono!", pretože aspoň JEDNA z podmienok je PRAVDA
) inak (
echo "Obe podmienky sú nepravdivé";
}

Ternárny operátor

Navrhujem, aby ste sa k problematike trojčlenného kódu vrátili neskôr. Nemohol som si pomôcť, ale nespomenul som to, pretože je to dôležitý dizajn, ktorý výrazne znižuje veľkosť kódu. Navrhujem, aby ste si kód ihneď pozreli.

Podstata kódu:(podmienka)? hodnota a, ak je pravda: hodnota a, ak je nepravda

Skrátime teda príkaz if. Táto operácia je však platná len pri priraďovaní hodnôt k premennej. Teraz sa pozrime na hotový príklad.

// Príklad použitia ternárneho operátora
$settings = (prázdne($_POST["nastavenia"])) ? "Predvolené" : $_POST["nastavenia"];

// Vyššie uvedený kód je podobný nasledujúcemu bloku pomocou if/else
if (prázdne($_POST["nastavenia"])) (
$settings = "Predvolené"; // Ak sa nič neprenesie, ponechajte to ako "Predvolené"
) inak (
$settings = $_POST["nastavenia"]; // Ak je odoslaná, potom sa $settings priradí odovzdaná hodnota.
}
?>
Prečítajte si komentáre ku kódu a všetko by malo byť jasné.

Ďakujem za tvoju pozornosť!


Posledná aktualizácia: 1.11.2015

V PHP môžeme použiť rôzne operátory: aritmetické, logické atď. Pozrime sa na každý typ operácie.

Aritmetické operácie

    + (operácia sčítania)

    Napríklad $a + 5

    - (operácia odčítania)

    Napríklad $a – 5

    * (násobenie)

    Napríklad $a * 5

    / (divízia)

    Napríklad $a / 5

    % (získanie zvyšku delenia)

    Napríklad: $a=12; echo $a % 5; // rovná sa 2

    ++ (zvýšenie/zvýšenie hodnoty o jeden)

    Napríklad ++$a

    Je dôležité pochopiť rozdiel medzi výrazmi ++$a a $a++ . Napríklad:

    $a=12; $b=++$a; // $b sa rovná 13 echo $b;

    Tu sa najprv k hodnote premennej $a pripočíta jedna a potom sa jej hodnota prirovná k premennej $b. Iné by to bolo, keby výraz vyzeral takto: $b=$a++; . Tu sa najprv hodnota premennej $a rovnala premennej $b a následne sa zvýšila hodnota premennej $a.

    -- (znížiť/znížiť hodnotu o jeden)

    Napríklad --$a . Rovnako ako v prípade prírastku existujú dva typy nahrávania: --$a a $a--

Operátori pridelenia

    Prirovnáva premennú ku konkrétnej hodnote: $a = 5

    Sčítanie, po ktorom nasleduje priradenie výsledku. Napríklad: $a=12; $a += 5; echo $a; // rovná sa 17

    Odčítanie, po ktorom nasleduje priradenie výsledku. Napríklad: $a=12; $a -= 5; echo $a; // rovná sa 7

    Násobenie s následným priradením výsledku: $a=12; $a *= 5; echo $a; // rovná sa 60

    Delenie nasledované priradením výsledku: $a=12; $a /= 5; echo $a; // rovná sa 2,4

    Zreťazte riadky a priraďte výsledok. Platí pre dva riadky. Ak premenné neukladajú reťazce, ale napríklad čísla, ich hodnoty sa skonvertujú na reťazce a potom sa vykoná operácia: $a=12; $a .= 5; echo $a; // rovná sa 125 // identické s $b="12"; $b .="5"; // rovná sa 125

    Získanie zvyšku delenia a následné priradenie výsledku: $a=12; $a %= 5; echo $a; // rovná sa 2

Porovnávacie operácie

Porovnávacie operácie sa zvyčajne používajú v podmienených štruktúrach, keď je potrebné porovnať dve hodnoty a v závislosti od výsledku porovnania vykonať určité akcie. K dispozícii sú nasledujúce porovnávacie operácie.

    Operátor rovnosti porovnáva dve hodnoty, a ak sú rovnaké, vráti hodnotu true, inak vráti hodnotu false: $a == 5

    Operátor identity tiež porovnáva dve hodnoty, a ak sú rovnaké, vráti hodnotu true, inak vráti hodnotu false: $a === 5

    Porovná dve hodnoty a ak nie sú rovnaké, vráti hodnotu true, inak vráti hodnotu false: $a != 5

    Porovná dve hodnoty, a ak nie sú rovnaké, vráti true, inak vráti nepravdu: $a !== 5

    Porovná dve hodnoty a ak je prvá väčšia ako druhá, vráti hodnotu true, inak vráti hodnotu false: $a > 5

    Porovná dve hodnoty a ak je prvá menšia ako druhá, vráti hodnotu true, inak vráti hodnotu false: $a< 5

    Porovná dve hodnoty a ak je prvá väčšia alebo rovná druhej, vráti hodnotu true, inak vráti hodnotu false: $a >= 5

    Porovná dve hodnoty a ak je prvá menšia alebo rovná druhej, vráti hodnotu true, inak vráti hodnotu false: $a<= 5

Operátor rovnosti a identity

Oba operátory porovnávajú dva výrazy a vrátia hodnotu true, ak sú výrazy rovnaké. Ale sú medzi nimi rozdiely. Ak operácia rovnosti naberá dve hodnoty rôznych typov, potom sa znížia na jednu - tú, ktorú interpret považuje za optimálnu. Napríklad:

Je zrejmé, že premenné ukladajú rôzne hodnoty rôznych typov. No pri porovnaní sa zredukujú na rovnaký typ – číselný. A premenná $a sa zredukuje na číslo 22. A nakoniec sa obe premenné budú rovnať.

Alebo napríklad nasledujúce premenné sa budú rovnať:

$a = nepravda; $b = 0;

Aby sa predišlo takýmto situáciám, používa sa operácia ekvivalencie, ktorá berie do úvahy nielen hodnotu, ale aj typ premennej:

$a = "22a"; $b = 22; if($a===$b) echo "rovná sa"; inak echo "nerovná sa";

Teraz sa premenné nebudú rovnať.

Operátory nerovnosti != a !== fungujú podobne.

Logické operácie

Logické operácie sa zvyčajne používajú na spojenie výsledkov dvoch porovnávacích operácií. Napríklad, musíme vykonať určitú akciu, ak je splnených niekoľko podmienok. K dispozícii sú nasledujúce logické operácie:

    Vráti hodnotu true, ak obe porovnávacie operácie vrátia hodnotu true, inak vráti hodnotu false: $a == 5 && $b = 6

    Podobne ako pri operácii &&: $a == 5 a $b > 6

    Vráti hodnotu true, ak aspoň jedna porovnávacia operácia vráti hodnotu true, inak vráti hodnotu false: $a == 5 || $b = 6

    Podobne ako pri operácii || : $a< 5 or $b > 6

    Vráti hodnotu true, ak operácia porovnania vráti hodnotu false: !($a >= 5)

    Vráti hodnotu true, ak je pravdivá iba jedna z hodnôt. Ak sú pravdivé obidve alebo ani jedna, vráti hodnotu false. Napríklad: $a=12; $b=6; if($a xor $b) echo "true"; inak echo "false";

    Tu bude výsledok logickej operácie nepravdivý, pretože obe premenné majú špecifickú hodnotu. Zmeňme kód:

    $a=12; $b=NULL; if($a xor $b) echo "true"; inak echo "false";

    Tu už bude výsledok pravdivý, keďže hodnota jednej premennej nie je nastavená. Ak má premenná hodnotu NULL, potom v logických operáciách bude jej hodnota považovaná za nepravdivú

Bitové operácie

Bitové operácie sa vykonávajú na jednotlivých bitoch čísla. Čísla sa berú do úvahy v binárnom vyjadrení, napríklad 2 v binárnom vyjadrení je 010, číslo 7 je 111.

    & (logické násobenie)

    Násobenie sa vykonáva po bitoch a ak majú oba operandy bitové hodnoty rovné 1, operácia vráti 1, inak sa vráti číslo 0. Napríklad: $a1 = 4; //100 $ b1 = 5; //101 ozvena $a1 & $b1; // rovná sa 4

    Tu je číslo 4 v dvojkovej sústave 100 a číslo 5 je 101. Vynásobte čísla bit po bite a získajte (1*1, 0*0, 0 *1) = 100, teda číslo 4 v desiatkovej sústave formát.

    | (logický dodatok)

    Podobne ako pri logickom násobení sa operácia vykonáva aj s binárnymi číslicami, ale teraz sa vráti jedna, ak má aspoň jedno číslo v danej číslici jednotku. Napríklad: $a1 = 4; //100 $ b1 = 5; //101 echo $a1 | $b1; // rovná sa 5

    ~ (logická negácia)

    invertuje všetky bity: ak je hodnota bitu 1, stane sa nulou a naopak. $b = 5; echo ~$b;

    X<

    x>>y - posunie číslo x doprava o y číslic. Napríklad 16>>1 posunie 16 (čo je 10 000 v binárnej sústave) o jedno miesto doprava, výsledkom čoho je 1 000 alebo 8 v desiatkovej sústave

Reťazové struny

Operátor bodka sa používa na zreťazenie reťazcov. Napríklad spojme niekoľko riadkov:

$a="Ahoj,"; $b="svet"; echo $a . $b . "!";

Ak premenné predstavujú iné typy ako reťazce, ako sú čísla, potom sa ich hodnoty skonvertujú na reťazce a potom dôjde aj k operácii zreťazenia reťazcov.



 

Môže byť užitočné prečítať si: