PHP podmíněné příkazy if, přepínač a ternární operátor. Podmíněný příkaz if v PHP

PHP podporuje standardní logické operátory AND a && , OR a || , ! (ne) a XOR . Logické operátory umožňují porovnat výsledky dvou operandů (hodnoty nebo výrazu), abyste určili, zda jeden nebo oba vrátí hodnotu true nebo false, a na základě vrácené hodnoty zvolit, zda chcete pokračovat ve provádění skriptu. Stejně jako porovnávací operátory vrací logické operátory jednu booleovskou hodnotu – true nebo false, v závislosti na hodnotách na obou stranách operátoru.

Logické OR (OR a ||)

Logický operátor OR se označuje jako OR nebo || . Provádí logickou operaci OR na dvou operandech. Pokud je jeden nebo oba operandy pravdivé, vrátí hodnotu true. Pokud jsou oba operandy nepravdivé, vrátí hodnotu false. Asi máte otázku: proč udělali dvě verze jednoho operátora? Smyslem dvou různých variant logického operátoru OR je, že pracují s různými prioritami.

Nejprve se podívejme, jak funguje operátor ||. . Pokud je tedy jeden nebo oba jeho operandy pravdivé, vrátí true . Pokud oba operandy vrátí false hodnoty, vrátí false .

Operátor OR funguje stejně jako operátor ||. s jednou výjimkou, pokud je s přiřazením použit operátor OR, nejprve vyhodnotí a vrátí hodnotu levého operandu, jinak funguje úplně stejně jako operátor || , tj. pokud je jeden nebo oba jeho operandy pravdivé, vrátí hodnotu true. Pokud oba operandy vrátí hodnotu false, vrátí hodnotu false .

Aby bylo jasnější, jak fungují, uveďme si následující příklad:

1 // Nejprve je proměnné přiřazena hodnota false a poté je vyhodnocen druhý operand // Prioritní akce: ($var2 = false) nebo true $var2 = false nebo true;
echo $var2; // false se nevytiskne // ($var3 = 0) nebo 3 $var3 = 0 nebo 3;

echo"

Pokud jde o operátory OR i ||, stojí za zmínku ještě jeden důležitý bod. . Logický operátor OR začíná své výpočty svým levým operandem, pokud vrátí hodnotu true, nebude pravý operand vyhodnocen. To šetří čas provádění, ale je třeba dbát na to, aby kód, na kterém může záviset správná činnost programu, nebyl umístěn do operandu vpravo.

Logické AND (AND a &&)

Logický operátor AND se označuje jako AND nebo && . Provádí logickou operaci AND na dvou operandech. Vrací hodnotu true tehdy a pouze tehdy, když se oba operandy vyhodnotí jako true . Pokud jeden nebo oba operandy vrátí hodnotu false , operátor vrátí hodnotu false . Význam dvou různých verzí operátoru „logický AND“ je stejný jako u dvou předchozích operátorů, totiž že pracují s různými prioritami.

Nejprve se podívejme, jak funguje operátor &&. Pokud jsou tedy oba jeho operandy pravdivé, vrátí true . Pokud alespoň jeden nebo oba jeho operandy vrátí hodnotu false , vrátí také hodnotu false .

Operátor AND funguje stejně jako operátor && s jednou výjimkou, pokud je operátor AND použit s přiřazením, nejprve vyhodnotí a vrátí hodnotu levého operandu, jinak funguje úplně stejně jako operátor &&. Pokud alespoň jeden z jeho operandů vrátí hodnotu false, vrátí také hodnotu false, a pokud oba operandy vrátí hodnotu false, vrátí hodnotu false.

Pro pochopení se nyní podívejme, jak to funguje v praxi:

$bar3"; // => 9 ?>

Exkluzivní OR (XOR)

Exkluzivní operátor OR je označen jako XOR. Vrací hodnotu true, pokud je pravdivý pouze jeden z jejích operandů. Pokud jsou oba operandy pravdivé, operátor vrátí hodnotu false.

Protože operátor XOR má stejnou prioritu jako operátory AND a OR (nižší než operátor přiřazení) a používá se ve výrazu přiřazení, nejprve vyhodnotí a vrátí hodnotu levého operandu.

6 $a1 = 19 x nebo 5 > 6;< 3) xor (5 != 5)); // true ?>

var_dump($a1); // => 19 var_dump(true xor true); // false var_dump((2

Logické NE (!)

Pokud potřebujete převrátit hodnotu výrazu, jako je a && b , budete muset použít závorky: !(a && b) . Také s pomocí operátora! Libovolnou hodnotu x můžete převést na její booleovský ekvivalent pomocí operátoru: !!x dvakrát.

Dobrý den, vážení začínající programátoři. Pokračujme ve studiu prvků, které tvoří.

V tomto článku se dozvíme, co jsou php operátory. Některé z nich známe téměř od dětství, ale známe je pouze jako znaménka (+, -, =, !, ?).

V php se jim všem říká operátory, což je celkem logické, protože provádějí konkrétní akci nebo operaci.

Dalo by se dokonce říci, že všechny tisknutelné znaky, které nejsou písmenem nebo číslem, jsou v PHP operátory. Ale to není vše, protože existují operátory skládající se z písmen.

Začněme popořadě.

Aritmetické operátory

Aritmetické operátory se používají k provádění operací s čísly.

+ je operátor sčítání;
— — operátor odčítání;
/ je operátor divize;
* — operátor násobení;
% je operátor pro získání zbytku během dělení;
++ — operátor zvýšení o jedna (přírůstek);
— — — snížení o jeden operátor (snížení)

Při psaní se obvykle před a za operátorem umísťuje mezera. To se provádí pouze pro snadné čtení kódu, i když tento prostor nic neovlivňuje a můžete se bez něj obejít, pokud si přejete.

Složité výrazy se skládají podle pravidel akceptovaných v aritmetice, to znamená, že násobení a dělení mají přednost před sčítáním a odčítáním, a pokud jsou ve výrazu přítomny obojí, jsou tyto výrazy uzavřeny v závorkách.

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

// 195

Při provádění akce dělení celého čísla celým číslem se v případě získání zbytku výsledek automaticky převede na reálné číslo (číslo s pohyblivou řádovou čárkou).
?>

echo 8/3;

//2,66666666666

Počet vytištěných číslic pro zlomkové číslo závisí na hodnotě nastavené v direktivě přesnosti v souboru php.ini. Obvykle se jedná o 12 znaků bez tečky.
?>

Operátor % se běžně používá k určení, zda je jedno číslo dělitelné druhým beze zbytku nebo ne. echo 53328 % 4 ;//0

Jsou volány operace s aritmetickými operátory, s výjimkou inkrementace a dekrementace binární, protože zahrnují dva operandy (člen + člen, dividenda / dělitel atd.) Jsou volány akce zvýšení a snížení unární

Operátory inkrementace (++) a dekrementace (- -) platí pouze pro proměnné.

Typ proměnné celé číslo (celá čísla)

$dalsi = 3 ;
echo +$další;
?>

// 4

Řetězec proměnného typu
$next = "abc";
?>

echo $další;

// abd

Místo písmene "c" se vytiskne písmeno "d", protože je další v abecedě a hodnotu proměnné jsme zvýšili o jedna.

Příklady ukazují akce s přírůstkem a stejným způsobem můžete provádět akce s přírůstkem.

Bitové operátory

Bitové operátory jsou navrženy pro práci s binárními daty. Pokud někdo neví, co to je, vysvětlím. Binární čísla jsou čísla jako 1001000011100000111000.
Protože se taková data při vývoji webových stránek téměř nikdy nepoužívají, nebudeme se jim podrobně věnovat. Jen vám ukážu, jak vypadají, abyste si při setkání s takovými symboly dokázali představit, s čím máte co do činění.
& - bitové spojení AND (and);
~ — bitová negace (ne);
<< — сдвиг влево битового значения операнда;
|

— bitové sjednocení OR (nebo);

^ — bitová eliminace OR (xor);

>> — posunutí bitové hodnoty operandu doprava;

Je docela pravděpodobné, že se s těmito operátory setkáte, protože binární data jsou široce používána při vývoji počítačových grafických programů. Ale aby je mohl studovat, pokud to někdo potřebuje, bude muset absolvovat samostatný kurz o jiném zdroji.
Porovnávací operátory
< — оператор меньше;
<= — оператор меньше или равно;
Porovnávací operátory jsou logické operátory a používají se k porovnání proměnných. Pole a objekty pomocí nich nelze porovnávat.
> - operátor větší než;
=> - operátor větší nebo rovno;
== — operátor rovnosti;

!= — operátor nerovnosti;

=== — operátor ekvivalence (hodnota a typ proměnné se rovnají);
!== — operátor neekvivalence;< 0 ; // пустая строка
V důsledku porovnání se na obrazovce zobrazí buď jedna, která odpovídá true, nebo prázdný řetězec, který odpovídá false.
echo 1 > 0;
?>

// 1

echo 1

echo 1 => 0 ;

// 1



echo 1 == 1 ;< $nexT)
{
// 1 Takže samy o sobě se operátory porovnání téměř nikdy nepoužívají. Jejich hlavním účelem je pracovat ve spojení s příkazem if.
}
?>

Podmíněné příkazy if, else, elseif.
Podmíněné operátory se tak nazývají, protože jsou navrženy tak, aby testovaly určitou podmínku v závislosti na tom, která akce se provádí.
if ($next > $nexT)
{
// 1 // Vytiskne prázdný řádek
}
?>

Pokud program potřebuje specifikovat dvě akce, z nichž jedna bude provedena, pokud je hodnota pravdivá, a druhá, pokud je hodnota nepravda, pak se společně s příkazem if použije příkaz else

Podmíněné příkazy if, else, elseif.
Podmíněné operátory se tak nazývají, protože jsou navrženy tak, aby testovaly určitou podmínku v závislosti na tom, která akce se provádí.
if ($next > $nexT)
{
echo "Možnost srážek";
}
jiný
{
echo "Neočekávají se žádné srážky";
}
?>

V tomto případě se zobrazí „Srážky se neočekávají“ a pokud ve výrazu změníte znaménko „Více“ na „Méně“, zobrazí se „Srážky jsou možné“. Takto podmíněné operátory kontrolují podmínku a podle ní vydávají správný výsledek.

Velmi často je potřeba nastavit více než dvě podmínky, a pak je pro postupnou kontrolu použít operátor elseif.



if ($next > $nexT)
{
echo "vidím";
}
elseif ($další<= $nexT)
{
echo "Sníh";
}
elseif ($next >= $nexT)
{
echo "Déšť";
}
elseif ($next == $nexT)
{
echo "Sucho";
}
jiný
{
echo "Možnost srážek";
}
?>

Tento program vypíše "Sníh". Pokud žádná z podmínek nevyhovuje, zobrazí se „Pravděpodobnost srážek“.

Příkaz if může obsahovat tolik bloků elseif, kolik chcete, ale pouze jeden příkaz else.

Je povolena alternativní možnost záznamu – bez složených závorek. V tomto případě řádky příkazů if, else, elseif končí dvojtečkou a celá konstrukce končí klíčovým slovem (operátor) endif.

$next = "Vlhkost vzduchu 50%";
$nexT = "Vlhkost vzduchu 60%";
echo 1 == 1 ;<= $nexT):

echo "Sníh";

elseif ($next >= $nexT):

echo "Déšť";

elseif ($next == $nexT):

echo "Sucho";

jiný:

echo "Možnost srážek";
endif;
?>

Logické operátory

Logické operátory jsou podobné bitovým operátorům. Rozdíl mezi nimi je v tom, že první operují s logickými proměnnými a druhé s čísly.

Logické operátory se používají v případech, kdy potřebujete zkombinovat několik podmínek, čímž se sníží počet příkazů if, což zase sníží pravděpodobnost chyb v kódu.

&& - spojovací spojka AND;
a - také AND, ale s nižší prioritou;
||
- oddělovací spojka OR;
nebo - také OR, ale s nižší prioritou;
xor - exkluzivní OR;

!

- popření;

Nižší priorita znamená, že pokud jsou přítomny oba operátory, jako první se provede ten s vyšší prioritou.

V budoucnu se na příkladech složitějších skriptů podrobněji zastavíme u logických operátorů.

Operátor přiřazení
Operátor přiřazení = přiřadí hodnotu pravého operandu levému operandu.
?>

$next = "Ahoj"

echo "Ahoj" // Dobrý den

Operátor tečka
Operátor tečky odděluje celočíselnou část čísla od zlomkové části a spojuje několik řetězců a číslo do jednoho celého řetězce. $dalsi = 22 ;
?>

echo "Dnes po" .$další. "očekává se mráz";

Stejně jako v matematice dává operátor závorek přednost akci, která je v nich uzavřena.

Nejprve se vykonají data v závorkách a poté všechny ostatní.

Operátor složených závorek

Existují tři způsoby nebo dokonce styly umístění složených závorek v PHP.

1. Styl BSD - závorky jsou zarovnány doleva.

if ($next)
{

}

2. GNU styl - závorky jsou zarovnány odsazeny od levého okraje

if ($next)
{
echo „Ahoj drazí začínající programátoři“;
}

3. Styl K&R - na řádku operátora se otevře závorka

if ($next)(
echo „Ahoj drazí začínající programátoři“;
}

Od samého začátku je potřeba si vybrat jeden ze stylů a v budoucnu při psaní skriptů používat pouze ten. Navíc je úplně jedno, jaký styl preferujete. Je důležité, aby to bylo jednotné v celém programu.

Myslím, že to zatím stačí. Operátory mohou být v zásadě nejen znaky, ale i funkce a další prvky, takže je velmi obtížné je všechny vyjmenovat a nemá to smysl.

Stačí mít představu o základních základech. A zbytek rozebereme na praktických příkladech.

Ir se v slzách toulá po letišti Šeremetěvo. Jeden ze zaměstnanců se rozhodl sympatizovat:
— Chybí ti vlast?
- Vůbec ne. Právě jsem ztratil všechna svá zavazadla
- Jak se to mohlo stát?
-Nerozumím sám sobě. Vypadá to, že jsem zástrčku zapojil správně

Dva hlavní příkazy, které poskytují struktury podmíněného větvení, jsou if a switch. Nejpoužívanější příkaz if se používá ve strukturách podmíněného skoku. Na druhou stranu, v určitých situacích, zejména pokud musíte procházet jednou z mnoha větví v závislosti na hodnotě jednoho výrazu a použití několika příkazů if vede ke složitějšímu kódu, se příkaz switch stává pohodlnějším. .

Před studiem těchto operátorů musíte rozumět logickým výrazům a operacím.

Logické operace

Logické operace vám umožňují kombinovat logické hodnoty (také nazývané pravdivostní hodnoty) a vytvářet nové logické hodnoty. Jak je uvedeno v tabulce níže, PHP podporuje standardní logické operátory (and, or, not a xor), přičemž první dva mají alternativní verze.

Logické operace PHP
Operace Popis
a Operace, jejíž výsledek je pravdivý tehdy a pouze tehdy, když jsou pravdivé oba její operandy
nebo Operace, jejíž výsledek je pravdivý, pokud je pravdivý jeden z jejích operandů (nebo oba operandy).
! Operace, jejíž výsledek je pravdivý, pokud je její jediný operand (uvedený napravo od znaku operace) nepravdivý, a nepravda, pokud je její operand pravdivý.
xor Operace, jejíž výsledek je pravdivý, pokud je pravdivý jeden z jejích operandů (ale ne oba).
&& Stejné jako operátor and, ale váže své operandy těsněji než tento operátor
|| Stejné jako operátor nebo, ale váže své operandy těsněji než tento operátor

Operace && a || by měl být známý programátorům v jazyce C. se obvykle nazývá nikoli proto, že se stává negací operandu, na který je aplikován.

Chcete-li otestovat, zda jsou oba operandy PRAVDA, použijete operátor AND, který lze také zapsat jako dvojitý ampersand (&&). Operátory AND i && jsou logické operátory, jediný rozdíl je v tom, že operátor && má vyšší prioritu než operátor AND; Totéž platí pro operátory OR a ||. Operátor AND vrátí hodnotu TRUE, pouze pokud jsou oba operandy TRUE; jinak je vrácena hodnota FALSE.

Chcete-li zkontrolovat, zda je alespoň jeden operand PRAVDA, použijte operátor OR, který lze také zapsat jako dvojitou svislou čáru (||). Tento operátor vrátí hodnotu TRUE, pokud má alespoň jeden z jeho operandů hodnotu TRUE.

Při použití operátoru OR v programu se mohou objevit jemné logické chyby. Pokud PHP zjistí, že první operand je PRAVDA, nevyhodnotí hodnotu druhého operandu. To šetří čas provádění, ale musíte být opatrní, abyste zajistili, že kód, na kterém program závisí, aby správně fungoval, nebyl umístěn do druhého operandu.

Operátor XOR umožňuje zkontrolovat, zda je PRAVDA pouze jeden z operandů (ale ne oba). Tento operátor vrátí hodnotu TRUE, pokud má jeden a pouze jeden z jeho operandů hodnotu TRUE. Pokud jsou oba operandy PRAVDA, operátor vrátí hodnotu FALSE.

Logickou hodnotu můžete invertovat pomocí operátoru NOT, který se často zapisuje jako vykřičník (!). Vrátí hodnotu TRUE, pokud je operand NEPRAVDA, a FALSE, pokud je operand TRUE.

Níže uvedená tabulka ukazuje některé booleovské výrazy a jejich výsledky:

Srovnávací operace

Níže uvedená tabulka ukazuje porovnávací operace, které lze použít s čísly nebo řetězci:

Srovnávací operace
Operace Jméno Popis
== rovná se Operace, jejíž výsledek je pravdivý, pokud jsou její operandy stejné a jinak nepravdivé
!= Ne rovné Operace, jejíž výsledek je nepravdivý, pokud jsou její operandy stejné a jinak pravdivé
< Méně Operace, jejíž výsledek je pravdivý, pokud je levý operand menší než pravý operand, a v opačném případě je nepravdivý
> Více Operace, jejíž výsledek je pravdivý, pokud je levý operand větší než pravý operand, a v opačném případě je nepravdivý
<= Menší nebo rovno Operace, jejíž výsledek je pravdivý, pokud je levý operand menší nebo roven pravému operandu, a v opačném případě je nepravdivý
>= Větší než nebo rovno Operace, jejíž výsledek je pravdivý, pokud je levý operand větší nebo roven pravému operandu, a v opačném případě je nepravdivý
=== Shodně Operace, jejíž výsledek je pravdivý, pokud jsou oba operandy stejné a stejného typu, a v opačném případě je nepravdivý

Jednou velmi častou chybou, kterou musíte udělat, je nezaměnit operátor přiřazení (=) s operátorem porovnání (==).

Priorita provozu

Samozřejmě bychom neměli nadužívat programovací styl, ve kterém je posloupnost operací určována hlavně používáním pravidel priority, protože kód napsaný tímto stylem je pro ty, kteří jej později studují, obtížně srozumitelný, ale je třeba poznamenat, že srovnání operace mají vyšší prioritu než logické operace. To znamená, že příkaz s kontrolním výrazem, jako je ten níže

PHP kód $var1 = 14; $var2 = 15; if (($var1< $var2) && ($var2 < 20)) echo "$var2 больше $var1 но меньше 20";

lze přepsat jako

PHP kód ...if ($var1< $var2 && $var2 < 20) ...

if- else prohlášení

Instrukce -li umožňuje provedení bloku kódu, pokud se podmíněný výraz v této instrukci vyhodnotí jako TRUE; jinak se blok kódu neprovede. Jako podmínku lze použít jakýkoli výraz, včetně testů na nenulovou hodnotu, rovnost, NULL zahrnující proměnné a hodnoty vrácené funkcemi.

Nezáleží na tom, které jednotlivé kondicionály tvoří podmínečný trest. Pokud je podmínka pravdivá, provede se programový kód uzavřený ve složených závorkách (()). V opačném případě to PHP ignoruje a přejde ke kontrole druhé podmínky, přičemž kontroluje všechny podmínky, které jste si zapsali, dokud nenarazí na příkaz jiný, poté automaticky provede tento blok. Příkaz else je nepovinný.

Syntaxe příkazu if je:

If (podmíněný výraz) (blok programového kódu;)

Pokud je výsledek vyhodnocení podmíněného výrazu PRAVDA, pak bude proveden blok programového kódu umístěný za ním. Pokud je v následujícím příkladu $username nastaveno na "Admin", zobrazí se uvítací zpráva. Jinak se nic nestane:

PHP kód $username = "Admin"; if ($username == "Admin") ( echo "Vítejte na stránce správce."; )

Pokud blok programového kódu obsahuje pouze jednu instrukci, pak jsou složené závorky volitelné, nicméně je dobrým zvykem je vždy používat, protože usnadňují čtení a úpravy kódu.

Volitelný příkaz else je blok kódu, který se standardně provede, když se podmíněný výraz vyhodnotí jako FALSE. Příkaz else nelze použít odděleně od příkazu if, protože else nemá svůj vlastní podmíněný výraz. To znamená, že else a if by měl být ve vašem kódu vždy pohromadě:

if a else prohlášení $username = "žádný admin"; if ($username == "Admin") ( echo "Vítejte na stránce správce."; ) else ( echo "Vítejte na stránce uživatele."; )

Nezapomeňte uzavřít blok kódu v příkazu if složenou závorkou, pokud na začátek bloku vložíte složenou závorku. Blok else musí mít také otevírací a zavírací složené závorky, stejně jako blok if.

To vše je v pořádku, kromě případů, kdy potřebujete zkontrolovat několik podmínek za sebou. K tomu se hodí návod jinakif. Umožňuje testovat další podmínky, dokud není nalezena pravda nebo dokud není dosaženo bloku else. Každý příkaz elseif má svůj vlastní blok kódu umístěný bezprostředně za podmíněným výrazem příkazu elseif. Příkaz elseif následuje po příkazu if a před příkazem else, pokud nějaký existuje.

Syntaxe příkazu elseif je trochu složitější, ale následující příklad vám pomůže ji pochopit:

Kontrola více podmínek $username = "Host"; if ($username == "Admin") ( echo "Vítejte na stránce správce."; ) elseif ($username == "Host") ( echo "Prohlížení není dostupné."; ) else ( echo "Vítejte na stránce uživatel." ;)

Zde se kontrolují dvě podmínky a v závislosti na hodnotě proměnné $username se provádějí různé akce. A stále existuje možnost něco udělat, pokud se hodnota proměnné liší od prvních dvou.

Ternární operátor?:

Operátor ?: je ternární (ternární) operátor, který má tři operandy. Funguje podobně jako příkaz if, ale vrací hodnotu jednoho ze dvou výrazů. Výraz, který bude vyhodnocen, je určen podmíněným výrazem. Dvojtečka (:) slouží jako oddělovač výrazů:

(podmínka)? vyhodnotit_pokud_podmínku_pravda: vyhodnotit_pokud_podmínku_nepravda;

Níže uvedený příklad kontroluje hodnotu a vrací různé řetězce podle toho, zda je PRAVDA nebo NEPRAVDA:

Vytvoření zprávy pomocí operátoru ? $přihlášeno = PRAVDA; $user = "Igor"; $banner = (!$logged_in) ? "Rejstřík!" : "Vítej zpět, $uživateli!"; echo $banner;

Je zcela zřejmé, že výše uvedené tvrzení je ekvivalentní následujícímu tvrzení:

PHP kód $přihlášeno = PRAVDA; $user = "Igor"; if (!$logged_in) ( $banner = "Registrace!"; ) else ( $banner = "Vítej zpět, $uživateli!"; ) echo $banner;

příkaz switch

Instrukce přepínač porovnává výraz s více hodnotami. Zpravidla se jako výraz používá proměnná, podle toho, jakou hodnotu je třeba provést konkrétní blok kódu. Představte si například proměnnou $action, která může mít hodnoty „ADD“, „MODIFY“ (změnit) a „DELETE“. Příkaz switch usnadňuje definování bloku kódu, který by měl být proveden pro každou z těchto hodnot.

Abychom ukázali rozdíl mezi příkazy if a switch, otestujme proměnnou proti více hodnotám. Níže uvedený příklad ukazuje programový kód, který implementuje takovou kontrolu na základě příkazu if a v následujícím příkladu na základě příkazu switch:

Testování proti jedné z několika hodnot (příkaz if) if ($action == "ADD") ( echo "Proveďte přidání."; echo "Počet instrukcí v každém bloku je neomezený."; ) elseif ($action == "MODIFY") ( echo "Proveďte změnu" ."; ) elseif ($action == "DELETE") ( echo "Provést smazání."; ) Testování proti jedné z několika hodnot (příkaz switch) switch ($action) ( case "ADD": echo "Proveďte přidání."; echo "Počet instrukcí v každém bloku je neomezený."; break; case "MODIFY": echo "Proveďte změnu."; break; case "DELETE" : echo "Provést odstranění.";

Příkaz switch převezme hodnotu vedle klíčového slova switch a začne ji porovnávat se všemi hodnotami vedle klíčových slov věc, v pořadí jejich umístění v programu. Pokud není nalezena shoda, žádný z bloků se neprovede. Jakmile je nalezena shoda, provede se odpovídající blok kódu. Níže uvedené bloky kódu se také provádějí - až do konce příkazu switch nebo do klíčového slova přerušení. To je výhodné pro organizaci procesu skládajícího se z několika po sobě jdoucích kroků. Pokud uživatel již dokončil některé kroky, bude moci pokračovat v procesu od místa, kde skončil.

Výraz vedle příkazu switch musí vrátit hodnotu primitivního typu, jako je číslo nebo řetězec. Pole lze použít pouze jako samostatný prvek, který má hodnotu elementárního typu.

Výchozí výběr

Pokud hodnota podmíněného výrazu neodpovídá žádné z možností navržených v příkazech case, příkaz switch v tomto případě umožňuje něco udělat, podobně jako příkaz else konstrukce if, elseif, else. Chcete-li to provést, musíte provést pokyn jako poslední možnost ve výběrovém seznamu výchozí:

Vytvoření chybové zprávy pomocí výchozího příkazu $akce = "ODSTRANIT"; switch ($action) ( case "ADD": echo "Proveďte přidání."; echo "Počet instrukcí v každém bloku je neomezený."; break; case "MODIFY": echo "Proveďte změnu."; break; case "DELETE" : echo "Provést smazání."; výchozí: echo "Chyba: příkaz $action není platný, " "Lze použít pouze příkazy ADD, MODIFY a DELETE.";

Kromě obvyklého příkazu switch podporuje alternativní syntaxi – konstrukci klíčových slov spínač/koncový spínač, definující začátek a konec příkazu namísto složených závorek:

Příkaz switch končí klíčovým slovem endwitch switch ($action): case "ADD": echo "Provést přidání.";

echo "Počet instrukcí v každém bloku je neomezený.";

Pokud má být proveden pouze blok kódu odpovídající určité hodnotě, pak by se klíčové slovo break mělo vložit na konec tohoto bloku. Když PHP interpret narazí na klíčové slovo break, bude pokračovat ve vykonání řádku za uzavírací složenou závorkou příkazu switch (nebo klíčového slova endwitch). Pokud však nepoužijete příkaz break, kontrola pokračuje v následujících větvích case konstrukce přepínače. Níže je uveden příklad:

Co se stane, když neexistují žádné příkazy přerušení $action="OBJEDNÁVKA SESTAVENÍ"; přepínač ($action) ( případ "POŘADÍ SESTAVENÍ": echo "Pořadí sestavení.
"; případ "BALENÍ": echo "Bal.
"; případ "SHIP": echo "Doručit zákazníkovi.
"; }

Pokud je proměnná $action nastavena na "POŘADÍ SESTAVENÍ", výsledek tohoto fragmentu bude následující:

Vyzvedněte si objednávku. Balíček. Doručit zákazníkovi.

Za předpokladu, že fáze sestavení již byla dokončena a proměnná $action je nastavena na "PACKAGE", bude získán následující výsledek:

Balíček. Doručit zákazníkovi.

Někdy je užitečné nemít příkaz break, jako ve výše uvedeném příkladu, kde se tvoří fáze objednávky, ale ve většině případů by se měl použít tento příkaz.

Typy dat Cykly 1 2 3 4 5 6 7 8 9 10
Hlavní věcí v akci tohoto operátora je podmínka. přeloženo z angličtiny znamená Li. Podmínka je přijata jako argument (co je v závorce). Podmínkou může být logický výraz nebo logická proměnná. Jednoduše řečeno, význam výrazu bude následující:

Pokud (podmínka)(
podmínka je splněna, udělejte to
}
jiný
{
podmínka není splněna, udělejte to jinak
}
Doufám, že logika podmíněné operace je jasná. Nyní se podívejme na příklad.

$a = 5;
$b = 25;

// Teď pozor! Podmínka: Pokud je $b větší než $a
// Znamení > a< , как и в математике, обозначают больше и меньше
if($b > $a)
{
// pokud je podmínka splněna, proveďte tuto akci
echo "$b je větší než $a";
}
jiný
{
// pokud se nespustí, tak toto
echo "$a je větší nebo rovno $b";
}
?>
Demonstrace Stáhněte si zdroje
Výsledkem bude výstup skriptu 25 více než 5. Příklad je docela jednoduchý. Doufám, že je vše jasné. Nyní navrhuji zvážit složitější situaci, kdy musí být splněno několik podmínek. Každá nová podmínka bude obsahovat po hlavní podmínce li()- pomocný, který se píše jako jinak když(). Nakonec to bude jako obvykle jiný.

Úkol: Testování se provádí ve škole. Skripta musí vypočítat skóre, zná podmínky pro získání každé známky a samotné skóre studenta. Pojďme se podívat, jak to napsat, a nezapomeňte si přečíst komentář.

$test = 82; // dejme tomu, že student napsal test s 82 body

// napište první podmínku pro pětku
if($test > 90)
{
// pokud je podmínka splněna, proveďte tuto akci.
echo "Hodnocení 5";
}
// Znak && znamená "and, union", že podmínka je splněna, pokud jsou obě pravdivé
// to znamená, že skóre je menší než 91 a více než 80, pak 4. Jinak se podmínky čtou dále
jinak if ($test< 91 && $test > 80)
{
echo "Hodnocení 4";
}
jinak if ($test< 81 && $test > 70)
{
echo "Hodnocení 3";
}
jiný
{
echo "Měli bychom napsat test znovu...";
}
?>
Demonstrace Stáhněte si zdroje
Náš student, který má čas jak na odpočinek, tak na psaní normálního testu, dostává hodnocení 4! Doufám, že princip fungování je jasný.

Je také možné krátce zaznamenat operaci podmíněné operace, kdy potřebujete akci pouze při splnění podmínky.

$věk = 19; // proměnné s věkem

If ($věk > 17)(
echo "To je ono! Můžu si dělat co chci! Už mám $věk!";
}
Docela pěkný příklad krátkého zápisu podmíněné operace. jiný není nutné psát.

Porovnání operátorů v PHP

Princip fungování podmíněné operace je jasný. Ale jak jste pochopili, existuje mnohem více způsobů srovnání. Podívejme se na níže uvedenou tabulku se srovnávacími operátory.

Příklad Název Výsledek
$a == $b Rovná se True, pokud $a se rovná $b
$a === $b Totožné s True, pokud $a je rovno $b a obě proměnné jsou stejného typu
$a != $b Nerovná se True, pokud $a není rovno $b
$a === $b Není totožné s True, pokud $a není rovno $b a oba typy nejsou stejné
$a > $b Větší než True, pokud $a je větší než $b
$a< $b Меньше чем True, если $a меньше, чем $b
$a >= $b Větší nebo rovno True, pokud $a je větší nebo rovno $b
$a<= $b Меньше или равно True, если $a меньше или равно $b
Nyní se podíváme na operátory s příklady:

// v rozporu se zvykem = znamená přiřazení hodnoty proměnné a == se rovná
if ($a == 5)(
echo "$a je 5"; // vypíše "5 se rovná 5"
) jinak (
echo "$a se nerovná 5";
}

Pokud ($a != 6)(
echo "$a se nerovná 6"; // vypíše "5 se nerovná 6". Nezbytné v případě zamítnutí
) jinak (
echo "$a se nějak rovná 6";
}

// s více a méně si myslím, že je vše jasné. Proto je příklad složitější
pokud ($a<= 6){
echo "$a je menší nebo rovno 6"; // vypíše "5 je menší nebo rovno 6"
) jinak (
echo "$a je větší než 6";
}

PHP logické operátory

Jsou chvíle, kdy potřebujete porovnat ne jednu proměnnou, ale dvě nebo více najednou v jedné podmínce. Pro toto existují logické operátory.

Příklad Název Výsledek
$a a $b Logické "a" PRAVDA, pokud $a i $b jsou PRAVDA.
$a nebo $b Logické "nebo" PRAVDA, pokud $a nebo $b je PRAVDA.
$a xor $b Výhradní "nebo" PRAVDA, pokud $a nebo $b je PRAVDA, ale ne obojí.
! $a Negace TRUE, pokud $a není TRUE.
$a && $b Logické "a" PRAVDA, pokud $a i $b jsou PRAVDA.
$a || $b Booleovské "nebo" PRAVDA, pokud $a nebo $b je PRAVDA.
Už jsme si toho všimli u operací A A nebo existují další operátoři? To se provádí za účelem upřednostnění složitých srovnávacích operací. V tabulce jsou logické operátory seřazeny podle priority: od nejmenšího po největší, tedy například || má vyšší prioritu než nebo.

Jdeme dál k příkladům

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

// podmínka: Pokud 5 není rovno 6 (PRAVDA) A 6 se nerovná 7 (PRAVDA)
pokud ($a< 6 && $b != $c){
echo "Vskutku ano!"; // vypíše "Vskutku ano!" protože OBĚ podmínky jsou PRAVDIVÉ
) jinak (
echo "Jedna z podmínek není pravdivá";
}

// podmínka: Pokud 6 není rovno 6 (NEPRAVDA) NEBO 6 není rovno 7 (PRAVDA)
if ($b != 6 || $b != $c)(
echo "To je ono!"; // zobrazí "To je ono!", protože alespoň JEDNA z podmínek je PRAVDA
) jinak (
echo "Obě podmínky jsou nepravdivé";
}

Ternární operátor

Navrhuji, abyste se k otázce ternárního kódu vrátili později. Nemohl jsem to nezmínit, protože je to důležitý návrh, který výrazně snižuje velikost kódu. Navrhuji, abyste se hned podívali na kód.

Podstata kódu:(podmínka)? hodnota a je-li pravdivá: hodnota a je-li nepravda

Zkrátíme tedy příkaz if. Tato operace je však platná pouze při přiřazování hodnot k proměnné. Nyní se podívejme na hotový příklad.

// Příklad použití ternárního operátoru
$settings = (prázdné($_POST["nastavení"])) ? "Výchozí" : $_POST["nastavení"];

// Výše ​​uvedený kód je podobný následujícímu bloku pomocí if/else
if (prázdné($_POST["nastavení"])) (
$settings = "Výchozí"; // Pokud se nic nepřenese, ponechte to jako "Výchozí"
) jinak (
$nastavení = $_POST["nastavení"]; // Je-li předáno, pak $settings je přiřazena předaná hodnota.
}
?>
Přečtěte si komentáře ke kódu a vše by mělo být jasné.

Děkuji za pozornost!


Lekce bude zahrnovat podmíněné příkazy php: příkaz if a příkaz switch

Podmíněné příkazy PHP jsou reprezentovány třemi hlavními konstrukcemi:

  • operátor stavu -li,
  • přepínací operátor přepínač
  • A ternární operátor.

Pojďme se na každou z nich podívat blíže.

PHP příkaz if

Obrázek 3.1. Podmíněný příkaz IF, krátká verze


Rýže. 3.2. IF ELSE Syntaxe podmíněného příkazu


Rýže. 3.3. Úplná syntaxe podmíněného příkazu IF elseif

Pojďme si to shrnout:

Úplná syntaxe:

if (podmínka) ( // pokud je podmínka pravdivá operátor1; operátor2; ) elseif(podmínka) (operátor1; ... ) else ( // pokud je podmínka nepravdivá operátor1; operátor2; )

  • Zkrácená syntaxe může neobsahují části klauzule else a neobsahují další podmínku elseif
  • Místo funkčního slova elseif můžete napsat else if (samostatně)
  • V jedné konstrukci if může být několik elseifů. Bude proveden první výraz elseif rovný TRUE.
  • Pokud existuje alternativní podmínka elseif, klauzule else musí být v syntaxi poslední.

Podmíněný příkaz může místo složených závorek používat dvojtečku:. V tomto případě příkaz končí pomocným slovem endif

Rýže. 3.4. Podmíněný příkaz If a Endif v php

Příklad:

if($x > $y): echo $x.“ je větší než „.$y; elseif($x == $y): // při použití ":" nemůžete psát samostatně else if echo $x." se rovná ".$y; else: echo $x." not > and not = ".$y; endif;

Důležité: Při použití dvojtečky místo složených závorek v konstrukci, elseif nelze napsat dvěma slovy!

Logické operace ve stavu

Podmínka if v závorkách může obsahovat následující operace:

Příklad: zkontrolujte hodnotu číselné proměnné: pokud je menší nebo rovna 10, zobrazí se zpráva "číslo menší nebo rovné 10", jinak zobrazte zprávu "číslo větší než 10"


Řešení:

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

if ($číslo

Příklad: Bloky kódu PHP lze rozbít, podívejme se na příklad: Zobrazení html kódu na obrazovce"a se rovná 4"


, pokud je proměnná $a skutečně rovna 4
1 2 3 4

1 řešení:

1 2 3 2 Řešení:

A se rovná 4

A se rovná 4 php úloha 3_1:


Zobrazte překlad barev z angličtiny do ruštiny a zkontrolujte hodnotu proměnné (ve které je barva přiřazena: $a="blue") php úloha 3_2:

Najděte maximum ze tří čísel

Porovnávací operace a pravidlo lži

Konstrukt if v závorkách musí obsahovat logický výraz nebo proměnnou, která je brána v úvahu z hlediska algebry logiky, vracející hodnoty buď true nebo false

1 2 3 4 Tito. jedna proměnná může fungovat jako podmínka. Podívejme se na příklad:

$a = 1;

if ($a) ( echo $a; )

$a=1;

  • if ($a) ( echo $a; ) V příkladu bude překladač jazyka PHP považovat proměnnou v závorkách za pravidlo lži:
  • Pravidlo LEŽÍ nebo co je považováno za nepravdivé: 0 )
  • logický 0.0 )
  • Falešný celá nula ( «0»
  • skutečná nula (
  • prázdný řetězec
  • a provázek pole bez prvků

objekt bez proměnných

speciální typ NULL V uvažovaném příkladu je tedy proměnná $a rovna jedné, tedy podmínka bude pravdivá a operátor echo $a; zobrazí hodnotu proměnné. php úloha 3_3: Je zadána proměnná a s hodnotou řetězce. Pokud se a rovná názvu, vytiskněte

"Ahoj, jméno!"

  1. , pokud a je rovno prázdné hodnotě, pak výstup logický operátor AND — && :
  2. $a=1; if ($a>0 || $a>1) ( echo "a > 0 nebo a > 1"; )

  3. Chcete-li označit, zda je podmínka nepravdivá, použijte logický operátor NE — ! :
  4. 1 2 3 4 $a = 1;< 0 ) ) { echo "a не < 0" ; }

    pokud (! ($a<0)) { echo "a не < 0"; }

$a=1; pokud (!($a

Přepnout operátor PHP Přepínací operátor nebo „přepínač“ nahrazuje několik po sobě jdoucích konstrukcí. Přitom porovnává jednu proměnnou s více hodnotami. Jedná se tedy o nejpohodlnější prostředek.

pro organizování více poboček

1 2 3 4 5 6 7 8 9 10 Syntax:

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 kontrolovat jak řetězcové hodnoty (pak jsou uvedeny v uvozovkách), tak číselné hodnoty (bez uvozovek).

Příkaz break v konstrukci je povinný. Opustí konstrukci, pokud je podmínka pravdivá a provede se operátor odpovídající podmínce. Bez přerušení budou provedeny všechny výroky případu bez ohledu na jejich pravdivost.


Příklad: Rýže. 3.5. Příkaz podmíněného přepínače


Řešení:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 je uvedeno pole s celými mužskými jmény. Zkontrolujte první prvek pole a v závislosti na názvu zobrazte pozdrav s krátkým názvem. $names = array ("Ivan" , "Petr" , "Semyon" ) ; switch ($names [ 0 ] ) ( case "Peter" : echo "Ahoj, Petyo!" ; break ; case "Ivan" : echo "Ahoj, Vanyo!" ; break ; case "Semyon" : echo "Ahoj, Vanyo! " ; break ; default : echo "Ahoj,

$names!"

;

  • zlomit ;
  • ) $names=array("Ivan","Peter","Semyon"); switch($names)( case "Peter": echo "Ahoj, Péťo!"; break; case "Ivan": echo "Ahoj, Vanyo!"; break; case "Semyon": echo "Ahoj, Vanyo!"; break ; výchozí: echo "Dobrý den, $jména!"; php úloha 3_4:
  • Vytvořte proměnnou $day a přiřaďte jí libovolnou číselnou hodnotu Pomocí konstrukce přepínače vytiskněte frázi"Je pracovní den"
  • Vytvořte proměnnou $day a přiřaďte jí libovolnou číselnou hodnotu , pokud hodnota proměnné $day spadá do rozsahu čísel od 1 do 5 (včetně) Vytiskněte frázi

"Je den volna"

1 2 3 4 5 6 7 8 9 10 11 12 , pokud je hodnota proměnné $day rovna číslům 6 nebo 7 "Neznámý den", pokud hodnota proměnné $day nespadá do rozsahu čísel od 1 do 7 (včetně)

Vyplňte kód:

... přepínač (... ) ( případ 1 : případ 2 : ... echo

"Je pracovní den", tj. se třemi operandy má poměrně jednoduchou syntaxi, ve které je vlevo od ? podmínka je zapsána a vpravo jsou dva operátory oddělené znaménkem: , vlevo od znaménka se operátor provede, pokud je podmínka pravdivá, a vpravo od znaménka: operátor se provede, pokud je podmínka falešný.

stav? operátor1: operátor2;



Nahoru