PHP-de flaglar bilen işleşiş
Häzir biz flaglar bilen işlemegi öweneris.
Flag - bu ýörite üýtgeýän, ýagny diňe iki bahany kabul edip bilýär: true
we false. Flaglar bilen bir zadyň ýoklugyny barlap görýän
meseleleri çözmek bolýar:
mysal üçin, massiwde kesgitlenen bahaly
elementiň ýoklugyny barlap bolýar. Başlalyň.
Indiki meselemi çözeliň: sanly massiw berlen,
onda 3 bahasy bar element bardygyny ýa-da ýoklugyny barlamaly.
Bar bolsa - '+++' çykarmaly,
ýok bolsa - '---' çykarmaly.
Ilki bilen, '+++' çykarmaga synanyşalyň.
Bun üçin massiwimiziň ähli elementlerini aýlanyp
we if bilen soralyň - häzirki element
3 bahasyna deňmi? Deň bolsa - '+++' çykaryň:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
if ($elem === 3) {
echo '+++';
}
}
?>
Emma çözümiňiz gowy däl: sebäbi eger
massiwde bir 3 bahasy bolmasa,
emma birnäçesi bolsa, onda '+++' birnäçe gezek
çykar. Geliň massiwimizi düzedeliň (3 bahaly
iki element edeliň) we muny tassyklaýalyň:
<?php
$arr = [1, 2, 3, 4, 3, 5];
foreach ($arr as $elem) {
if ($elem === 3) {
echo '+++'; // birnäçe gezek çykarar
}
}
?>
Meseläni düzeliň: element eýýäm tapylsa,
break bilen aýlawy gutaraýalyň:
<?php
$arr = [1, 2, 3, 4, 3, 5];
foreach ($arr as $elem) {
if ($elem === 3) {
echo '+++';
break; // aýlawy gutaraýarys
}
}
?>
Indi muny etmegi synanyşalyň: massiwde ümuman 3 bahaly
element ýok bolsa, '---' çykarylsyn. Ýörgünli
ýalňyşlyk biziň if-e else goşmakdyr
- bu ýagdaýda '---'
3 bolmadyk ähli elementler üçin
çykarylýar:
<?php
$arr = [1, 2, 3, 4, 5];
foreach ($arr as $elem) {
if ($elem === 3) {
echo '+++'; // 3 elementinde çykarar
} else {
echo '---'; // 1, 2, 4, 5 elementlerinde çykarar
}
}
?>
Şeýlelik bilen, else goşmak pikiri - erbet
pikir, işlemeýär. Şuňa meňzeş görnüşli
meseleleri (ýöne meseleler ýetişir derejede
duş gelýär) çözmek üçin şeýle atlandyrylan flaglar ulanylýar.
Ýokarda aýdylyşy ýaly, flag - şeýle
üýtgeýän, iki bahany kabul edip bilýär:
true ýa-da false.
Şeýlelik bilen, flag üýtgeýänini edeliň
şeýle baha bilen: eger ol true-a deň bolsa,
onda massiwde 3 elementi bardyr, emma
false bolsa, onda şeýle element ýokdur.
Başlangyçda flag üýtgeýänini
false bahasyna goýalyň - ýagny hasap edeliň,
3 elementi massiwde ýok:
$arr = [1, 2, 3, 4, 5];
$flag = false; // massiwde 3 elementi ýok diýip hasap edýäris
Soňra aýlawy if bilen öň etdigimiz ýaly işledeliň.
Eger aýlaw massiwde 3 elementi bardygyny anyklasa
- onda flag üýtgeýänini
true bahasyna goýalyň we aýlawdan
break bilen çykalyň:
<?php
$arr = [1, 2, 3, 4, 5];
$flag = false; // massiwde 3 elementi ýok diýip hasap edýäris
foreach ($arr as $elem) {
if ($elem === 3) {
$flag = true; // element bar - $flag üýtgeýänini täzeden kesgitleýäris
break; // aýlawdan çykaryş
}
}
?>
Massiwde 3
bar ýa-da ýok diýen soraga jogap, diňe aýlawdan soň berip bileris.
Bu joga bize eýýäm bar: aýlawdan soň
flag üýtgeýän ýaly false galyp biler
ýa-da öz bahasyny true üýtgedip biler,
eger aýlaw massiwde 3 bardygyny anyklasa:
<?php
$arr = [1, 2, 3, 4, 5];
$flag = false;
foreach ($arr as $elem) {
if ($elem === 3) {
$flag = true;
break;
}
}
// bäri $flag üýtgeýän ýa true-a deň, ýa-da false
?>
Indi aýlawdan soň biz if edip bileris, ol
flag üýtgeýänine sereder we
ekrana '+++' ýa-da '---' çykarar:
<?php
$arr = [1, 2, 3, 4, 5];
$flag = false;
foreach ($arr as $elem) {
if ($elem === 3) {
$flag = true;
break;
}
}
if ($flag === true) {
echo '+++';
} else {
echo '---';
}
?>
Massiw berlen:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
?>
Bu massiwde 'c' elementiň
bar ýa-da ýoklugyny barlaň.
Bar bolsa - '+++' çykaryň,
ýok bolsa - '---' çykaryň.
Bir sanyň sade ýa-da däl sade dugyny barlayan kody ýazyň. Sade san diňe birlige we özüne bölünýär, beýleki sanlara bölünmeýär.