PHP тілінде шартты операторлар (if, switch), циклдермен жұмыс (while, for, foreach) және include, require функцияларын қолдану



If операторы
Бұл көптеген тілдердің, соның ішінде PHP қоса алғанда ең маңызды операторлардың бірі. Ол шартқа байланысты код үзіндісін орындауға мүмкіндік береді. If операторының құрылымын төмендегідей беруге болады:

if (өрнек) орындалу_блогы

Мұндағы өрнек кез келген дұрыс PHP-өрнек (яғни, барлық мәні бар өрнек). Скрипті өңдеу кезінде өрнек логикалық типке түрленеді. Егер түрлену кезінде өрнектің мәні ақиқат (True) болса, онда орындалу_блогы жүзеге асады. Кері жағдайда орындалу_блогы еленбейді. Егер орындалу_блогы бірнеше командадан тұрса, онда олар {} жақшаға алынуы тиіс.

Өрнектің логикалық типке түрлену ережесі:
1. FALSE мәніне төмендегі мәндер түрленеді:
o логикалық False;
o бүтін нөл (0);
o нақты нөл (0.0);
o бос жол және «0» жолы;
o элементтері жоқ массив;
o айнымалылары жоқ объект;
o NULL арнайы типі.
2. Қалған барлық мәндер TRUE мәніне түрленеді.
<?
$names = array("Иван","Петр","Семен");
if ($names[0]=="Иван") {
echo "Ваня, сәлем!";
$num = 1;
$account = 2000;
}
if ($num) echo "Иван тізімде бірінші!";
$bax = 30;
if ($account > 100*$bax+3)
echo "Шарт орындалмағандықтан,
бұл жол экранға шықпайды;
?>
Мысал 3.1. if шартты операторы (html, txt)

Else операторы

Біз if операторының тек бір, негізгі бөлігін ғана қарастырдық. Бұл оператордың бірнеше кеңейтілген түрі бар. If операторындағы шарт орындалмаған жағдайда else операторын қолданамыз және шартқа байланысты қандай да бір әрекеттерді орындауға мүмкіндік береді.
Else операторының көмегімен кеңейтілген if операторының құрылымын келесі түрде беруге болады:
if (өрнек) орындалу_блогы
else орындалу_блогы1
1. Савельева Н.В.
Основы программирования на PHP
Интернет-университет информационных технологий - ИНТУИТ.ру
2. Анисимов А.Е., Пупышев В.В.
Сборник заданий по основаниям программирования
БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий - ИНТУИТ.ру
3. Непейвода Н.Н.
Стили и методы программирования
Интернет-университет информационных технологий - ИНТУИТ.ру
4. Сузи Р.А.
Язык программирования Python
БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий - ИНТУИТ.ру
5. Терехов А.Н.
Технология программирования
БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий - ИНТУИТ.ру

Дәрісте шартты операторлар (if, switch), циклдермен жұмыс (while,
for, foreach) және include, require функцияларын қолдану қарастырылады.
Мысал ретінде әр түрлі жағдайларға байланысты әмбебап хат дайындау және оны
қолданушылардың әрбіреуіне жіберу қарастырылады.
Шартты операторлар
If операторы
Бұл көптеген тілдердің, соның ішінде PHP қоса алғанда ең маңызды
операторлардың бірі. Ол шартқа байланысты код үзіндісін орындауға мүмкіндік
береді. If операторының құрылымын төмендегідей беруге болады:

if (өрнек) орындалу_блогы

Мұндағы өрнек кез келген дұрыс PHP-өрнек (яғни, барлық мәні бар
өрнек). Скрипті өңдеу кезінде өрнек логикалық типке түрленеді. Егер түрлену
кезінде өрнектің мәні ақиқат (True) болса, онда орындалу_блогы жүзеге
асады. Кері жағдайда орындалу_блогы еленбейді. Егер орындалу_блогы бірнеше
командадан тұрса, онда олар {} жақшаға алынуы тиіс.

Өрнектің логикалық типке түрлену ережесі:
1. FALSE мәніне төмендегі мәндер түрленеді:
o логикалық False;
o бүтін нөл (0);
o нақты нөл (0.0);
o бос жол және 0 жолы;
o элементтері жоқ массив;
o айнымалылары жоқ объект;
o NULL арнайы типі.
2. Қалған барлық мәндер TRUE мәніне түрленеді.
?
$names = array("Иван","Петр","Семен");
if ($names[0]=="Иван") {
echo "Ваня, сәлем!";
$num = 1;
$account = 2000;
}
if ($num) echo "Иван тізімде бірінші!";
$bax = 30;
if ($account 100*$bax+3)
echo "Шарт орындалмағандықтан,
бұл жол экранға шықпайды;
?
Мысал 3.1. if шартты операторы (html, txt)

Else операторы

Біз if операторының тек бір, негізгі бөлігін ғана қарастырдық. Бұл
оператордың бірнеше кеңейтілген түрі бар. If операторындағы шарт
орындалмаған жағдайда else операторын қолданамыз және шартқа байланысты
қандай да бір әрекеттерді орындауға мүмкіндік береді.
Else операторының көмегімен кеңейтілген if операторының құрылымын
келесі түрде беруге болады:
if (өрнек) орындалу_блогы
else орындалу_блогы1

If...else конструкциясын келесідей түсіндіруге болады: егер шарт
орындалса (яғни, өрнек=true), онда орындалу_блогындағы әрекеттерді, әйтпесе
– орындалу_блогы1 жүзеге асады. Else операторын қолдану міндетті емес.
Алдыңғы мысалды шарт орындалмаған жағдайда орындалуға тиісті
әрекеттерді ескере отырып өзгертейік.
?
$names = array("Иван","Петр","Семен");
if ($names[0]=="Иван") {
echo "Ваня, салем!";
$num = 1;
$account = 2000;
} else {
echo "Салем, $names[0].
Ал біз Ваняны күткен едік :(";
}
if ($num) echo "Иван тізімде бірінші!";
else echo "Иван тізімде бірінші ЕМЕС?!";
$bax = 30;
if ($account 100*$bax+3)
echo "Шарт орындалмағандықтан,
бұл жол экранға шықпайды";
else echo "Бірақ, мына жолды көре аламыз!";
?
Мысаыл 3.2. else операторы (html, txt)

Else if операторы

If операторының тағы бір кеңейту әдісі – elseif операторын қолдану.
Elseif – бұл else және if операторларының комбинациясы. Ол else операторына
ұқсас if операторындағы шарт орындалмаған жағдайда, басқа әрекеттерді
жүзеге асыру үшін қолданылады. Бірақ else операторынан айырмашылығы –
балама әрекеттер тек elseif-шарты ақиқат болғанда ғана орындалады. Else
және elseif операторларының көмегімен кеңейтілген if операторының құрылымын
келесідей беруге болады:
if (өрнек) орындалу_блогы
elseif(өрнек1) орындалу_блогы1
...
else орындалу_блогыN
Бір if-блокта бірнеше elseif операторлары болуы мүмкін. Elseif-
тұжырымы орындалады, тек егер алдыңғы if-шарттар False, барлық алдыңғы
elseif-шарттар False, ал соңғы elseif-шарт – True болса.
?
$names = array("Иван","Петр","Семен");
if ($names[0]=="Иван") {
егер массивтегі бірінші есім Иван болса
echo "Салем, Ваня!";
}elseif ($names[0] == "Петр"){
егер бірінші есім
Иван емес, Петр болса
echo "Салем, Петя!";
}elseif ($names[0] == "Семен"){
егер бірінші есім
Иван да, Петр де емес, Семен болса
echo "Салем, Сеня!";
}else {
егер бірінші есім Иван да,
Петр де, Семен де емес болса
echo "Салем, $names[0]. Ал сен кімсің?";
}
?
Мысал 3.3. Elseif операторы (html, txt)
Балама синтаксис

РНР өзінің кейбір басқарушы құрылымдары, атап айтқанда if , while ,
for , foreach және switch үшін балама синтаксисті ұсынады. Әрбір жағдай
үшін ашылатын жақшаны қос нүктеге (:), ал жабушы жақшаны – сәйкесінше
endif;, endwhile; және т.б. ауыстырамыз.
Мысалы, if операторының синтаксисін келесідегідей жазуға болады:

if(өрнек): орындалу_блогы endif;
Мағынасы өзгермейді: егер if операторының жақшасына алынып жазылған
өрнек ақиқат болса, онда қос нүктеден : endif командасына дейінгі
бағдарлама коды жүзеге асады. Мұндай синтаксисті қолдану php тілін html-
кодына кірістіргенде қолданған ыңғайлы.
?php
$names = array("Иван","Петр","Семен");
if ($names[0]=="Иван"):
?
Салем, Ваня!
?php endif ?
Мысал 3.4. Балама синтаксисті қолдану (html, txt)
Егер else және elseif конструкциясы қолданылса, төмендегі балама
синтаксисті қолдануға болады.
?php
if ($a == 5):
print "a 5-ке тең";
print "...";
elseif ($a == 6):
print "a 6-ға тең";
print "!!!";
else:
print "a 5-ке де,6-ға да тең емес";
endif;
?

Switch операторы

Шартты тексеріп және соған байланысты әрекеттерді жүзеге асыратын
конструкциялардың бірі - switch. Оны қазақ тіліне ауыстырып қосқыш деп
аударуға болады. Мағынасы да солай. Айнымалының мәніне сәйкес әрекет ету
блоктарының арасында ауысып отырады. Switch операторының қызметі
if...elseif...else немесе if операторының жиынына өте ұқсас. Switch
операторының құрылымын келесідегідей жазуға болады:
switch (өрнек немесе айнымалы){
case мән1:
әрекет_ету_блогы1
break;
case мән2:
әрекет_ету_блогы2
break;
...
default:
үнсіздік_бойынша_әрекет_ету_блогы
}
If операторынан айырмашылығы, мұнда өрнектің мәні логикалық типке
келтірілмейді, тек case (мән1, мән2 және т.б.) кілттік сөзінен кейінгі
мәндермен салыстырылады. Егер өрнектің мәні қандай да бір нұсқаға сәйкес
келсе, онда оған сәйкес әрекет_ету_блогы – қос нектеден switch операторының
соңына дейін немесе бар болса, break операторына дейін орындалады. Егер
өрнектің мәні нұсқалардың ешқайсысымен сәйкес келмесе, default кілттік
сөзінен кейін орналасқан әрекеттер (үнсіздік_бойынша_әрекет_ету_блогы)
үнсіздік бойынша орындалады. Switch операторында өрнектің мәні тек бір рет
есептеледі, ал elseif операторында шартқа байланысты бірнеше рет
есептеледі, сондықтан егер өрнек күрделі болса, switch операторы жылдамырақ
жұмыс істейді.
Мысал 3.3-ті switch операторын қолданып, төмендегідей жазуға болады:
?
$names = array("Иван","Петр","Семен");
switch ($names[0]){
case "Иван":
echo "Салем, Ваня!";
break;
case "Петр":
echo "Салем, Петя!";
break;
case "Семен":
echo "Салем, Сеня!";
break;
default:
echo "Салем, $names[0].
Ал сіздің есіміңіз кім?";
}
?
Егер бұл мысалда break операторын елемейтін болсақ, мысалы, case
"Петр":, онда егер айнымалы "Петр" жолына тең болса, экран бетіне "Салем,
Петя!" хабарламасы шыққаннан кейін, бағдарлама "Салем, Сеня!" хабарламасын
шығарады, содан кейін break операторына кездесіп, switch операторынан
кейінгі командаларын орындайды.
If операторы сияқты switchоператоры үшін балама синтаксисті қолдануға
болады, мұндағы ашылатын switch фигуралы жақшасын қос нүкте, ал жабушы –
endswitch; алмастырады.

Циклдер
РНР тілінде шартқа байланысты қайталанатын әрекеттерді жүзеге асыратын
бірнеше конструкциялар бар. Олар while , do..while , foreach и for
циклдері. Олармен жақынырақ танысайық.
While
Құрылымы:

while (өрнек) { орындалу_блогы }
немесе
while (өрнек): орындалу_блогы endwhile;
While – қарапайым цикл. Ол орындалу_блогындағы өрнектің мәні True
болып тұрғанша командаларды орындайды (мұнда if операторындай, өрнек
логикалық типке келтіріледі). Өрнектің мәні әрбір циклдің басында
тексеріледі, сондықтан егер орындалу_блогын жүзеге асыру кезінде оны мәні
өзгерсе де, цикл итерацияның соңына дейін орындалады (яғни,
орындалу_блогының барлық командалары жүзеге асқанша).
?
бұл бағдарлама барлық жұп цифрларды экран бетіне шығарады
$i = 1;
while ($i 10) {
if ($i % 2 == 0) print $i;
егер цифр жұп болса, экран бетіне шығарамыз
$i++;
және оны $i бірлікке арттырамыз
}
?
Мысал 3.5. While операторы (html, txt)

do... while
Do..while циклі while цикліне өте ұқсас. Тек өрнектің ақиқаттығы
циклдің басында емес, соңында тексеріледі. Сондықтан do..while циклінің
орындалу_блогы тым болмағанда бір рет орындалады.
Құрылымы:
do {орындалу_блогы} while (өрнек);

?
бұл бағдарлама цикл шарты орындалмағанына қарамай,
12 санын басып шығарады
$i = 12;
do{
if ($i % 2 == 0) print $i;
егер сан жұп болса, онда оны басып шығарамыз
$i++;
бірге арттырамыз
}while ($i10)
?
Пример 3.6. Do..while операторы (html, txt)

For
РНР тіліндегі ең күрделі циклдердің бірі. Ол С тілінің сәйкес
циклдеріне өте ұқсас.
Құрылымы
for (өрнек1; өрнек2; өрнек3) {орындалу_блогы}
немесе
for (өрнек1; өрнек2; өрнек3): орындалу_блогы endfor;

Мұнда көріп отырғанымыздайшарт үш өрнектен тұрады. Бірінші өрнек1
өрнегі шартсыз циклдің басында есептелінеді. Әрбір итерацияның басында
өрнек2 есептелінеді. Егер ол True болса, цикл жалғасып, орындалу_блогының
барлық командалары жүзеге асырылады. Егер өрнек2 мәні False болса, цикл
тоқтайды. Әрбір итерацияның соңында (яғни, орындалу_блогының барлық
командалары жүзеге асқаннан кейін) өрнек3 есептелінеді.
Өрнек 1,2,3 әрбіреуі бос болуы мүмкін. Егер өрнек2 бос болса, онда
цикл анықталамаған уақытта жүзеге асуы керек (бұл жағдайда РНР бұл өрнекті
әрқашан ақиқат деп ұғады). Циклді break операторын қолданып, тоқтатуға
болады.
Мысалы, for операторын қолданып, барлық жұп сандарды шығарайық:
?php
for ($i=0; $i10; $i++){
if ($i % 2 == 0) print $i;
жұп мсандарды шығарамыз
}
?
Егер екінші өрнекті қолданбасақ (шарт $i10), онда осы есепті break
операторын қолданып шешіп көрейік.
?php
for ($i=0; ; $i++){
if ($i=10) break;
егер $i 10 санынан үлкен немесе тең болса,
онда цикл жұмысын тоқтатамыз
if ($i % 2 == 0) print $i;
егер сан жұп болса,
онда оын басып шығарамыз
}
?
Үш шартты да бос қалтыруға болады. Бұл жағдайда $i санағыштың бастапқы
мәні берілмейді және ол әрбір циклдің соңында өзгермейді. Бұл әрекеттердің
барлығын жеке командалар түрінде не орындалу_блогында не цикл алдында
жазуға болады:
?php
$i=0; санағыштың бастапқы мәнін береміз
for ( ; ; ){
if ($i=10) break;
егер $i 10 үлкен не тең болса,
онда цикл жұмысын тоқтатамыз
if ($i % 2 == 0) print $i;
егер сан жұп болса,
онда оны басып шығарамыз
$i++; санағышты бірге арттырамыз
}
?
For контрукциясындағы үшінші өрнекті үтір арқылы бірнеше қарапайым
командалардың тізбегі түрінде жазуға болады. Мысалы, егер біз барлық
цифрларды басып шығарғымыз келсе, бағдарламаны қарапайым түрде келесідей
етіп жазуға болады:
?php
for ($i=0; $i10; print $i, $i++)
* Егер орындалу_блогында командалар жоқ болса немесе
Текбір командадан тұрса,
онда ол алынған фигуралы жақшаларды,
алып тастауға болады.*
?
foreach
Тағы бір пайдалы конструкция. Ол РНР4 пайда болып, тек массивтермен
жұмыс істеуге ғана арналған.
Синтаксис:
foreach ($array as $value) {орындалу_блогы}
немесе
foreach ($array as $key = $value)
{орындалу_блогы}

Бірінші жағдайда $array айнымалысы арқылы берілген массивтің барлық
элементтері бойынша цикл құрылады. Циклдің әрбір қадамында массив
элементінің ағымдағы мәні $value айнымалысына жазылады және массивтің ішкі
санағышы бірге артады (сондықтан, әрбір қадам массивтің келесі элементін
береді). Орындалу_блогының ішкі бөлігінде массив элементінің ағымдағы мәні
$value айнымалысының көмегімен алынуы мүмкін. Орындалу_блогы $array
массивінің санына байланысты орындалады.
Жазудың екінші формасы алдыңғы жазбаны толықтырады. Циклдің әрбір
қадамында массивтің ағымдағы элементінің кілтін $key айнымалысына жазады.
Оны орындалу_блогында да қолдануға болады.
Foreach операторы орындала бастағанда, массивтің ішкі көрсеткіші
автоматты түрде бірінші элементке барады.
?php
$names = array("Иван","Петр","Семен");
foreach ($names as $val) {
echo "Салем, $val
";
бәріне салемдеме шығарады
}
foreach ($names as $k = $val) {
сәлемдемеден басқа,
тізімдегі ретін шығрамыз, яғни кілтті
echo "Салем, $val ... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
PHP тілі туралы
Электрондық басылымдарды жасау технологиясы және рнр скриптін оқытудың негіздері
WEB - сайттар түрлері, жобалау кезеңдері. Бағдарламалық жабдықты таңдау
PHP-скрипті программалау тілі
PHP және MySql
Цикльдік бағдарламаны ұйымдастыру
Service Desk және Help Desk жүйелерін талдау
Алматы энергетика және байланыс университетіне арналған мобильді қосымша құру
Есептер жүйесінің құрылымы
Интернет дүкен құру
Пәндер