PHP-də mürəkkəb məntiq mümkündürmü? PHP: Məntiqi operatorlar - Manual. Müqayisə əməliyyatları və yalan qaydası

Dərs şərti php operatorlarını əhatə edəcək: if ifadəsi və keçid ifadəsi

PHP şərti ifadələri üç əsas konstruksiya ilə təmsil olunur:

  • şərt operatoru əgər,
  • keçid operatoru keçid
  • üçlü operator.

Gəlin onların hər birinə daha yaxından nəzər salaq.

PHP if ifadəsi

Şəkil 3.1. Şərti IF ifadəsi, qısa versiya


düyü. 3.2. ƏGƏR ƏLƏSƏ, Şərti İfadə Sintaksisi


düyü. 3.3. IF elseif şərt ifadəsinin tam sintaksisi

Ümumiləşdirək:

Tam sintaksis:

if (şərt) ( // şərt doğrudursa operator1; operator2; ) elseif(şərt) ( operator1; ... ) else ( // əgər şərt yanlışdırsa operator1; operator2; )

  • Qısaldılmış sintaksis edə bilər else bəndinin hissələri yoxdur və əlavə elseif şərti yoxdur
  • elseif funksiya sözünün yerinə else if (ayrıca) yaza bilərsiniz.
  • Bir if construct bir neçə elseifs ola bilər. TRUE-ə bərabər olan ilk elseif ifadəsi yerinə yetiriləcək.
  • Alternativ elseif şərti varsa, else cümləsi sintaksisdə sonuncu yerdə gəlməlidir.

Şərti ifadə iki nöqtədən istifadə edə bilər: əyri mötərizələrin əvəzinə. Bu halda ifadə endif köməkçi sözü ilə bitir

düyü. 3.4. php-də If və Endif şərt ifadəsi

Misal:

if($x > $y): echo $x." ".$y"-dən böyükdür; elseif($x == $y): // ":" istifadə edərkən siz ayrı yaza bilməzsiniz, əgər echo $x." bərabərdir ".$y; else: echo $x." deyil > və deyil = ".$y; endif;

Əhəmiyyətli: Konstruksiyada qıvrım mötərizə yerinə iki nöqtədən istifadə edərkən elseif iki sözlə yazıla bilməz!

Vəziyyətdə məntiqi əməliyyatlar

Mötərizədə if şərti aşağıdakı əməliyyatları ehtiva edə bilər:

Misal: rəqəmsal dəyişənin dəyərini yoxlayın: əgər 10-dan az və ya bərabərdirsə, mesajı göstərin "10-dan kiçik və ya ona bərabər olan ədəd", əks halda mesaj göstərin "10-dan çox rəqəm"


Həlli:

$nömrə=15;<=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }

əgər ($nömrə

Misal: PHP kod blokları qırıla bilər, bir nümunəyə baxaq: Html kodunu ekranda göstərin"a 4-ə bərabərdir"


, əgər $a dəyişəni həqiqətən 4-ə bərabərdirsə
1 2 3 4

1 Həll yolu:

1 2 3 2 Həll yolu:

A 4-ə bərabərdir

A 4-ə bərabərdir php işi 3_1:


Rənglərin ingilis dilindən rus dilinə tərcüməsini göstərin, dəyişənin dəyərini yoxlayın (rəngin təyin olunduğu: $a="mavi") php işi 3_2:

Maksimum üç ədədi tapın

Mötərizədə if konstruksiyasında məntiq cəbri nöqteyi-nəzərindən nəzərdən keçirilən, doğru və ya yanlış olan dəyərləri qaytaran məntiqi ifadə və ya dəyişən olmalıdır.

Bunlar. tək dəyişən şərt kimi çıxış edə bilər. Bir misala baxaq:

1 2 3 4 $a = 1 ;

əgər ($a) ( echo $a; )

$a=1;

əgər ($a) ( echo $a; )

  • Nümunədə PHP dilinin tərcüməçisi mötərizədə olan dəyişəni yalan qaydası hesab edəcək: Yalan qaydası və ya yalan sayılan şey:
  • məntiqi 0 )
  • Yalan 0.0 )
  • tam sıfır ( real sıfır ( «0»
  • boş sim
  • və simli
  • elementləri olmayan massiv dəyişənləri olmayan obyekt

xüsusi növü

NULL Beləliklə, nəzərdən keçirilən misalda $a dəyişəni birinə bərabərdir, müvafiq olaraq şərt doğru olacaq və operator $a əks-sədası verir; dəyişənin dəyərini göstərəcək. php işi 3_3: sətir dəyəri olan a dəyişəni verilir. Əgər a ada bərabərdirsə, çap edin "Salam, ad!"

, əgər a boş qiymətə bərabərdirsə, onda çıxış

  1. "Salam qərib!" Şərti operatorda AND OR və NOT məntiqi konstruksiyalar — && :
  2. Bəzən eyni vaxtda bir neçə şərtin yerinə yetirilməsini təmin etmək lazımdır. Sonra şərtlər birləşdirilir

  3. məntiqi operator AND $a=1; if ($a>0 || $a>1) ( əks-səda "a > 0 və ya a > 1"; ) — ! :
  4. 1 2 3 4 Şərtin yanlış olub olmadığını göstərmək üçün istifadə edin< 0 ) ) { echo "a не < 0" ; }

    məntiqi operator DEYİL<0)) { echo "a не < 0"; }

$a = 1 ;

əgər (! ($a $a=1; əgər (!($a.

PHP operatorunu dəyişdirin

1 2 3 4 5 6 7 8 9 10 Keçid operatoru və ya “keçid” konstruksiyaları varsa, bir neçə ardıcıl əvəz edir. Bunu edərkən, bir dəyişəni çoxlu qiymətlərlə müqayisə edir. Beləliklə, bu ən əlverişli vasitədir

çoxşaxəliliyin təşkili üçün

  • Sintaksis:
  • keçid ($dəyişən) ( hal "dəyər1" : operator1 ; fasilə ; hal "dəyər2" : operator2 ; fasilə ; hal "dəyər3" : operator3 ; fasilə ; [ default : operator4 ; fasilə ; ] )

switch($dəyişən)( hal "dəyər1": operator1; fasilə; hal "dəyər2": operator2; fasilə; hal "dəyər": operator3; fasilə; )


Misal: Operator həm sətir dəyərlərini (sonra onlar dırnaqlarda göstərilir), həm də rəqəmli dəyərləri (dırnaq işarələri olmadan) yoxlaya bilər.


Həlli:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $adlar = massiv ("İvan" , "Peter" , "Semyon" ); keçid ($names [ 0 ] ) ( "Peter" işi : əks-səda "Salam, Petya!" ; fasilə ; "İvan" : əks-səda "Salam, Vanya!" ; fasilə ; "Semyon" işi: əks-səda "Salam, Vanya! " ; fasilə ; default : echo "Salam,$adlar!"

;

fasilə;

  • )
  • $names=array("İvan","Peter","Semyon"); switch($names)( "Peter" işi: əks-səda "Salam, Petya!"; fasilə; "İvan" işi: "Salam, Vanya!"; fasilə; "Semyon" işi: "Salam, Vanya!"; fasilə ; default: echo "Salam, $names!"; php işi 3_4:$day dəyişəni yaradın və ona ixtiyari rəqəmli dəyər təyin edin
  • Keçid konstruksiyasından istifadə edərək, ifadəni çap edin "İş günüdür", əgər $day dəyişəninin dəyəri 1-dən 5-ə qədər (daxil olmaqla) rəqəmlər diapazonuna düşürsə
  • Keçid konstruksiyasından istifadə edərək, ifadəni çap edin İfadə çap edin"İstirahət günüdür"

, əgər $day dəyişəninin dəyəri 6 və ya 7 rəqəmlərinə bərabərdirsə

1 2 3 4 5 6 7 8 9 10 11 12 "Naməlum gün" , əgər $day dəyişəninin dəyəri 1-dən 7-yə qədər (daxil olmaqla) rəqəmlər diapazonuna düşmürsə Kodu tamamlayın:

... keçid (... ) ( hal 1 : hal 2 : ... əks-səda

"İş günüdür"

; fasilə;

hal 6 : ... default : ... )

Switch(...)( hal 1: hal 2: ... əks-səda "Bu, iş günüdür"; fasilə; hal 6: ... default: ... )

PHP üçlü operatoru

Məntiqi OR operatoru OR və ya || kimi işarələnir . İki operand üzərində məntiqi OR əməliyyatını yerinə yetirir. Əgər operandlardan biri və ya hər ikisi doğrudursa, o, doğrunu qaytarır. Hər iki operand yalan olarsa, yalan qaytarır. Yəqin ki, bir sualınız var: niyə bir operatorun iki versiyasını hazırladılar? Məntiqi OR operatorunun iki fərqli variantının məqsədi onların müxtəlif prioritetlərlə işləməsidir.

Əvvəlcə || operatorunun necə işlədiyinə baxaq. . Beləliklə, əgər onun operandlarından biri və ya hər ikisi doğrudursa, o, true qaytarır. Hər iki operand yalançı dəyərləri qaytararsa, o, false qaytaracaq.

OR operatoru || operatoru ilə eyni işləyir. bir istisna olmaqla, OR operatoru təyinatla istifadə olunursa, o, əvvəlcə sol operandın dəyərini qiymətləndirəcək və qaytaracaq, əks halda o, || operatoru ilə eyni işləyir. , yəni. onun operandlarından biri və ya hər ikisi doğrudursa, o, doğru qaytarır. Hər iki operand false qaytararsa, false qaytaracaq.

Onların necə işlədiyini aydınlaşdırmaq üçün aşağıdakı nümunəni verək:

1 // Əvvəlcə dəyişənə false dəyəri təyin edilir, sonra isə ikinci operand qiymətləndirilir // Prioritet hərəkət: ($var2 = false) və ya true $var2 = yanlış və ya doğru;
echo $var2; // false çap edilmir // ($var3 = 0) və ya 3 $var3 = 0 və ya 3;

əks-səda "

$var3"; // => 0 ?>

İstənilən müqayisə və məntiqi operatorlar daha mürəkkəb strukturlarda birləşdirilə bilər:

Həm OR, həm də || operatorları ilə bağlı qeyd etməyə dəyər daha bir vacib məqam var. . Məntiqi OR operatoru hesablamalara sol operandla başlayır, əgər doğrudursa, onda sağ operand qiymətləndirilməyəcək; Bu, icra müddətinə qənaət edir, lakin proqramın düzgün işləməsinin asılı ola biləcəyi kodun sağ operandda yerləşdirilməməsinə diqqət yetirilməlidir.

Məntiqi VƏ (AND və &&)

AND operatoru bir istisna ilə && operatoru ilə eyni işləyir, əgər AND operatoru təyinatla istifadə olunursa, o, əvvəlcə sol operandın qiymətini qiymətləndirib qaytaracaq, əks halda && operatoru ilə tam olaraq eyni işləyir. Əgər onun operandlarından ən azı biri yalnış qaytarırsa, o da false qaytaracaq və hər iki operand false qaytararsa, yalançı qaytaracaq.

Bunu başa düşmək üçün indi bunun praktikada necə işlədiyinə baxaq:

$bar3"; // => 9 ?>

Eksklüziv OR (XOR)

Eksklüziv OR operatoru XOR kimi qeyd olunur. Operandlarından biri və yalnız biri doğru olarsa, bu doğru qaytarır. Hər iki operand doğrudursa, operator yalanı qaytaracaq.

XOR operatoru AND və OR operatorları ilə eyni üstünlüyə malik olduğundan (təyinat operatorundan aşağıdır) və o, təyinat ifadəsində istifadə olunduğundan, ilk öncə sol operandın qiymətini qiymətləndirir və qaytarır.

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

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

Məntiqi DEYİL (!)

Məntiqi NOT operatoru, həmçinin inkar adlanır, işarəsi ilə göstərilir! . Tək operanddan əvvəl yerləşdirilən bir operatordur. Məntiqi NOT operatoru operandının məntiqi dəyərini çevirmək üçün istifadə olunur və həmişə doğru və ya yalanı qaytarır.

Əgər a && b kimi ifadənin dəyərini çevirmək lazımdırsa, mötərizələrdən istifadə etməlisiniz: !(a && b) . Həm də operatorun köməyi ilə! Operatordan istifadə etməklə istənilən x dəyərini Boolean ekvivalentinə çevirə bilərsiniz: !!x iki dəfə.

Şərti budaqlanan strukturları təmin edən iki əsas ifadə if və keçiddir. Ən çox istifadə olunan if ifadəsi şərti keçid strukturlarında istifadə olunur. Digər tərəfdən, müəyyən situasiyalarda, xüsusən də bir ifadənin dəyərindən asılı olaraq çoxsaylı budaqlardan birini keçməlisinizsə və bir sıra if ifadələrinin istifadəsi daha mürəkkəb koda gətirib çıxarırsa, keçid ifadəsi daha rahat olur. .

Bu operatorları öyrənməzdən əvvəl məntiqi ifadələri və əməliyyatları başa düşməlisiniz.

Məntiqi əməliyyatlar

Məntiqi əməliyyatlar yeni məntiqi dəyərlər yaratmaq üçün məntiqi dəyərləri (həmçinin həqiqət dəyərləri adlanır) birləşdirməyə imkan verir. Aşağıdakı cədvəldə göstərildiyi kimi, PHP standart məntiqi operatorları (və, və ya, deyil və xor) dəstəkləyir, ilk ikisinin alternativ versiyaları var.
PHP məntiqi əməliyyatlar Əməliyyat
Nəticəsi doğru olan əməliyyat, yalnız və yalnız onun hər iki operandı doğru olduqda
və ya Operandlarından biri (və ya hər iki operand) doğru olarsa, nəticəsi doğru olan əməliyyat
! Tək operand (əməliyyat işarəsinin sağında verilmiş) yanlışdırsa, nəticəsi doğru, operandı doğrudursa, yalan olan əməliyyat.
xor Operandlarından biri (lakin hər ikisi deyil) doğru olarsa, nəticəsi doğru olan əməliyyat
&& və operatoru ilə eynidir, lakin onun operandlarını bu operatordan daha sıx bağlayır
|| və ya operatoru ilə eynidir, lakin onun operandlarını bu operatordan daha sıx bağlayır

Əməliyyatlar && və || C proqramçılarına tanış olmalıdır! adətən tətbiq olunduğu operandın inkarına çevrildiyi üçün çağırılmır.

Hər iki operandın DOĞRU olub-olmadığını yoxlamaq üçün siz AND operatorundan istifadə edirsiniz ki, bu da qoşa ampersand (&&) kimi yazıla bilər. Həm AND, həm də && operatorları məntiqi operatorlardır. Eyni şey OR və || operatorlarına aiddir. AND operatoru yalnız hər iki operand TRUE olduqda TRUE qaytarır; əks halda FALSE qaytarılır.

Ən azı bir operandın DOĞRU olub-olmadığını yoxlamaq üçün siz OR operatorundan istifadə edirsiniz ki, bu da ikiqat şaquli xətt (||) kimi yazıla bilər. Operandlarından ən azı biri TRUE olarsa, bu operator TRUE qaytarır.

Proqramda OR operatorundan istifadə edərkən incə məntiqi xətalar yarana bilər. Əgər PHP birinci operandın TRUE olduğunu aşkar edərsə, o, ikinci operandın dəyərini qiymətləndirməyəcək. Bu icra vaxtına qənaət edir, lakin proqramın düzgün işləməsindən asılı olan kodun ikinci operandda yerləşdirilməməsinə diqqət yetirməlisiniz.

XOR operatoru operandlardan yalnız birinin (lakin hər ikisinin deyil) TRUE olub-olmadığını yoxlamağa imkan verir. Operandlarından biri və yalnız biri TRUE olarsa, bu operator TRUE qaytarır. Hər iki operand TRUE olarsa, operator FALSE qaytaracaq.

Çox vaxt nida işarəsi (!) kimi yazılan NOT operatorundan istifadə edərək məntiqi dəyəri tərsinə çevirə bilərsiniz. Operand FALSE olduqda TRUE, DOĞRU olduqda isə FALSE qaytarır.

Aşağıdakı cədvəl bəzi Boolean ifadələrini və onların nəticələrini göstərir:

Müqayisə əməliyyatları

Aşağıdakı cədvəl rəqəmlər və ya sətirlərlə istifadə edilə bilən müqayisə əməliyyatlarını göstərir:

Müqayisə əməliyyatları
PHP məntiqi əməliyyatlar ad Əməliyyat
== Bərabərdir Operandları bərabər olduqda nəticəsi doğru olan əməliyyat, əks halda yanlışdır
!= Bərabər deyil Operandları bərabər olduqda nəticəsi yalan, əks halda doğru olan əməliyyat
< Daha az Sol operand sağ operanddan kiçik olarsa nəticəsi doğru, əks halda yanlış olan əməliyyat
> Daha çox Sol operand sağ operanddan böyükdürsə nəticəsi doğru, əks halda yanlış olan əməliyyat
<= Daha az və ya bərabərdir Sol operand sağ operanddan kiçik və ya ona bərabər olarsa nəticəsi doğru, əks halda isə yanlış olan əməliyyat
>= -dən böyük və ya bərabərdir Sol operand sağ operanddan böyük və ya ona bərabər olarsa nəticəsi doğru, əks halda isə yanlış olan əməliyyat
=== Eynilə Hər iki operand bərabər və eyni tipdə olarsa nəticəsi doğru, əks halda yanlış olan əməliyyat

Etməli olduğunuz çox yayılmış səhvlərdən biri təyin operatorunu (=) müqayisə operatoru (==) ilə qarışdırmamaqdır.

Əməliyyat prioriteti

Əlbəttə ki, əməliyyatların ardıcıllığının əsasən prioritet qaydalarının istifadəsi ilə müəyyən edildiyi proqramlaşdırma üslubundan çox istifadə edilməməlidir, çünki bu üslubda yazılmış kodu sonradan öyrənənlər üçün başa düşmək çətindir, lakin qeyd etmək lazımdır ki, müqayisə əməliyyatlar məntiqi əməliyyatlardan daha yüksək prioritetə ​​malikdir. Bu o deməkdir ki, aşağıdakı kimi bir yoxlama ifadəsi olan bir ifadə

PHP kodu $var1 = 14; $var2 = 15; əgər (($var1< $var2) && ($var2 < 20)) echo "$var2 больше $var1 но меньше 20";

kimi yenidən yazmaq olar

PHP kodu ...əgər ($var1< $var2 && $var2 < 20) ...

if-else ifadəsi

Təlimatlar əgər bu təlimatdakı şərti ifadə TRUE olaraq qiymətləndirildikdə kod blokunun icrasına icazə verir; əks halda kod bloku icra olunmur. İstənilən ifadə şərt kimi istifadə edilə bilər, o cümlədən sıfırdan fərqli dəyər, bərabərlik, dəyişənləri əhatə edən NULL və funksiyalar tərəfindən qaytarılan dəyərlər üçün testlər.

Şərti cümləni hansı fərdi şərt qoşmalarının təşkil etməsinin əhəmiyyəti yoxdur. Şərt doğru olarsa, əyri mötərizələrə (()) daxil edilmiş proqram kodu yerinə yetirilir. Əks halda, PHP buna məhəl qoymur və ifadəyə çatana qədər yazdığınız bütün şərtləri yoxlayaraq ikinci şərti yoxlamağa keçir. başqa, bundan sonra avtomatik olaraq bu bloku icra edəcək. else ifadəsi isteğe bağlıdır.

if ifadəsinin sintaksisi belədir:

Əgər (şərti ifadə) (proqram kodu bloku;)

Əgər şərti ifadənin qiymətləndirilməsinin nəticəsi DOĞRU olarsa, ondan sonra yerləşən proqram kodu bloku icra olunacaq. Aşağıdakı misalda, əgər $username "Admin" olaraq təyin edilibsə, salamlama mesajı göstərilir. Əks halda heç nə olmayacaq:

PHP kodu $username = "Admin"; if ($username == "Admin") ( "Admin səhifəsinə xoş gəlmisiniz."; ) əks-sədası

Proqram kodu blokunda yalnız bir təlimat varsa, buruq mötərizələr isteğe bağlıdır, lakin kodu oxumağı və redaktə etməyi asanlaşdırdıqları üçün həmişə onlardan istifadə etmək yaxşı bir vərdişdir.

İsteğe bağlı else ifadəsi şərti ifadə FALSE olaraq qiymətləndirildikdə defolt olaraq yerinə yetirilən kod blokudur. else ifadəsi if ifadəsindən ayrı istifadə edilə bilməz, çünki else ifadəsinin öz şərti ifadəsi yoxdur. Yəni kodunuzda başqa və əgər həmişə birlikdə olmalıdır:

if və else ifadələri $username = "admin yoxdur"; if ($username == "Admin") ( echo "İdarəçi səhifəsinə xoş gəlmisiniz."; ) else ( "İstifadəçi səhifəsinə xoş gəlmisiniz."; )

Blokun əvvəlinə əyri mötərizə qoyursanız, if ifadəsindəki kod blokunu əyri mötərizə ilə bağlamağı unutmayın. else blokunda da if bloku kimi açılan və bağlanan mötərizələr olmalıdır.

Ardıcıl bir neçə şərti yoxlamaq lazım olduğu hallar istisna olmaqla, hər şey yaxşıdır. Bunun üçün təlimatlar uyğundur başqa. True tapılana və ya else blokuna çatana qədər əlavə şərtlərin sınaqdan keçirilməsinə imkan verir. Hər bir elseif ifadəsi, elseif ifadəsinin şərt ifadəsindən dərhal sonra yerləşdirilən öz kod blokuna malikdir. elseif ifadəsi if ifadəsindən sonra, əgər varsa else ifadəsindən əvvəl gəlir.

elseif ifadəsinin sintaksisi bir az daha mürəkkəbdir, lakin aşağıdakı nümunə onu başa düşməyə kömək edəcək:

Çoxlu şərtlərin yoxlanılması $username = "Qonaq"; if ($username == "Admin") ( echo "İdarəçi səhifəsinə xoş gəlmisiniz."; ) elseif ($username == "Qonaq") ( "Baxmaq mümkün deyil."; ) əks-sədası ( "Səhifəyə xoş gəlmisiniz" echo istifadəçi."; )

Burada iki şərt yoxlanılır və $username dəyişəninin qiymətindən asılı olaraq müxtəlif hərəkətlər yerinə yetirilir. Və dəyişənin dəyəri ilk ikisindən fərqlənirsə, hələ də bir şey etmək imkanı var.

Üçlü operator?:

?: operatoru üç operand götürən üçlü (üçlü) operatordur. O, if ifadəsinə bənzəyir, lakin iki ifadədən birinin dəyərini qaytarır. Qiymətləndiriləcək ifadə şərti ifadə ilə müəyyən edilir. İki nöqtə (:) ifadə ayırıcı kimi xidmət edir:

(vəziyyət)? evaluate_əgər_şərt_doğrudursa: evaluate_if_condition_false;

Aşağıdakı nümunə dəyəri yoxlayır və onun TRUE və ya YANLIŞ olmasından asılı olaraq müxtəlif sətirləri qaytarır:

? operatorundan istifadə edərək mesaj yaratmaq: $logged_in = DOĞRU; $user = "İqor"; $banner = (!$logged_in) ? "Qeydiyyatdan keç!" : "Xoş gəlmisiniz, $user!"; echo $banner;

Yuxarıdakı ifadənin aşağıdakı ifadəyə ekvivalent olduğu tamamilə açıqdır:

PHP kodu $logged_in = DOĞRU; $user = "İqor"; if (!$logged_in) ( $banner = "Qeydiyyatdan keçin!"; ) else ( $banner = "Xoş gəlmisiniz, $user!"; ) echo $banner;

keçid bəyanatı

Təlimatlar keçid ifadəni çoxsaylı qiymətlərlə müqayisə edir. Bir qayda olaraq, müəyyən kod blokunun icra edilməli olduğu dəyərdən asılı olaraq dəyişən ifadə kimi istifadə olunur. Məsələn, "ƏLAVƏ", "DEĞİŞTİR" (dəyişiklik) və "SİL" dəyərlərinə malik ola bilən $action dəyişənini təsəvvür edin. Switch bəyanatı bu dəyərlərin hər biri üçün yerinə yetirilməli olan kod blokunu təyin etməyi asanlaşdırır.

if və switch ifadələri arasındakı fərqi göstərmək üçün gəlin dəyişəni çoxsaylı qiymətlərlə sınaqdan keçirək. Aşağıdakı nümunə if ifadəsi əsasında belə bir yoxlama həyata keçirən proqram kodunu və aşağıdakı misalda keçid ifadəsinə əsaslandığını göstərir:

Bir neçə dəyərdən birinə qarşı sınaq (if ifadəsi) if ($action == "ƏLAVƏ") ( echo "Əlavə edin."; echo "Hər blokdakı təlimatların sayı qeyri-məhduddur."; ) elseif ($action == "DEĞİŞTİR") ( echo "Dəyişiklik həyata keçirin" ."; ) elseif ($action == "SİL") ( əks-səda "Silinməni həyata keçirin."; ) Bir neçə dəyərdən birinə qarşı sınaq (keçid bəyanatı) keçid ($action) ( "ƏLAVƏ" halı: "Əlavə yerinə yetirin." əks-sədası; əks-səda "Hər blokdakı təlimatların sayı qeyri-məhduddur."; fasilə; "MODIFY" halı: echo "Dəyişiklik yerinə yetirin."; fasilə; case "DELETE" : echo "Silinmə yerinə yetirin." fasilə )

Switch bəyanatı keçid açar sözünün yanındakı dəyəri götürür və onu açar sözlərin yanındakı bütün dəyərlərlə müqayisə etməyə başlayır. hal, proqramda yerləşmə sırası ilə. Uyğunluq tapılmazsa, blokların heç biri yerinə yetirilmir. Uyğunluq tapıldıqdan sonra müvafiq kod bloku icra olunur. Aşağıdakı kod blokları da yerinə yetirilir - keçid ifadəsinin sonuna və ya açar sözə qədər fasilə. Bu, bir neçə ardıcıl addımdan ibarət prosesi təşkil etmək üçün əlverişlidir. İstifadəçi bəzi addımları artıq tamamlayıbsa, o, prosesi qaldığı yerdən davam etdirə biləcək.

Keçid ifadəsinin yanındakı ifadə nömrə və ya sətir kimi primitiv tipli bir dəyər qaytarmalıdır. Massiv yalnız elementar tipli dəyəri olan ayrıca element kimi istifadə edilə bilər.

Defolt seçim

Şərti ifadənin qiyməti hal ifadələrində təklif olunan variantlardan heç birinə uyğun gəlmirsə, bu halda keçid ifadəsi if, elseif, else konstruksiyasının else ifadəsi kimi bir şey etməyə imkan verir. Bunu etmək üçün seçim siyahısında son seçim olaraq bir təlimat etməlisiniz default:

Defolt bəyanatdan istifadə edərək səhv mesajının yaradılması $action = "SİLİN"; keçid ($action) ( "ƏLAVƏ" halı: "Əlavə yerinə yetirin." əks-sədası; əks-səda "Hər blokdakı təlimatların sayı qeyri-məhduddur."; fasilə; "MODIFY" halı: echo "Dəyişiklik yerinə yetirin."; fasilə; case "DELETE" : echo "Silinməni həyata keçirin." fasilə: echo "Xəta: $action əmri etibarlı deyil, "Yalnız ADD, MODIFY və DELETE əmrləri istifadə edilə bilər.";

Adi birinə əlavə olaraq, keçid ifadəsi alternativ sintaksisi - açar söz konstruksiyasını dəstəkləyir keçid/son açar, buruq mötərizələrin əvəzinə ifadənin başlanğıcını və sonunu təyin edərək:

Switch ifadəsi endswitch açar sözü ilə bitir keçid ($action): case "ADD": echo "Əlavə etməyi həyata keçirin.";

echo "Hər blokdakı təlimatların sayı məhdudiyyətsizdir.";

fasilə;

case "MODIFY": echo "Dəyişiklik yerinə yetirin."; fasilə;
case "DELETE": əks-səda "Silinməni həyata keçirin.";
fasilə;
"; }

default: echo "Xəta: $action əmri etibarlı deyil, ".

"Yalnız ƏLAVƏ, DƏYİŞTİR və SİL əmrlərindən istifadə edilə bilər."; son açar;

İcranı dayandırmaq

Əgər yalnız müəyyən bir dəyərə uyğun kod bloku icra ediləcəksə, onda break açar sözü həmin blokun sonuna daxil edilməlidir. PHP tərcüməçisi break açar sözü ilə qarşılaşdıqda, keçid ifadəsinin (yaxud endswitch açar sözünün) bağlanma mötərizəsindən sonra xətti icra etməyə davam edəcəkdir. Lakin break ifadəsindən istifadə etməsəniz, yoxlama keçid konstruksiyasının sonrakı hal filiallarında davam edir. Aşağıda bir nümunə verilmişdir:

Heç bir fasilə ifadələri olmadıqda nə baş verir

$action="Sifariş YAP"; keçid ($action) ( "Sifarişi YAP": əks-səda "Sifarişi yığın.

"; halda "PACKAGE": əks-səda "Paket.

"; halda "SHIP": echo "Müştəriyə çatdırın.

Əgər $action dəyişəni "ASSEMBLE ORDER" olaraq təyin edilibsə, bu fraqmentin nəticəsi aşağıdakı kimi olacaq:<= 10) echo "Это число находится между 5 и 10"; ?>

Sifariş toplayın. Paket. Müştəriyə çatdırmaq. Quraşdırma mərhələsinin artıq tamamlandığını və $action dəyişəninin "PACKAGE" olaraq təyin edildiyini fərz etsək, aşağıdakı nəticə əldə ediləcək: Paket. Müştəriyə çatdırmaq.

Bəzən yuxarıda sifariş mərhələlərinin formalaşdığı nümunədə olduğu kimi fasilə ifadəsinin olmaması faydalıdır, lakin əksər hallarda bu ifadədən istifadə edilməlidir.

Məlumat növləri Dövrlər 1 2 3 4 5 6 7 8 9 10 Beləliklə, biz artıq müəyyən bir şərtə cavab verən kodu necə icra edəcəyimizi bilirik. Ancaq bu ana qədər yalnız bir şərt ola bilərdi. Əgər bir neçə şərt eyni vaxtda yerinə yetirilirsə, kod icra edilməlidirsə? Bu problemi həll etmək üçün məntiqi operatorlar var:

= 5 && $qiymət

&& operatoru da çağırılır

məntiqi VƏ

&& və və operatorları arasında, həmçinin || arasında

və ya bir az fərq var - icra qaydası.

Bildiyiniz kimi, vurma toplamadan daha üstündür. Beləliklə, və və ya operatorları təyin operatorundan daha aşağı prioritetə ​​malikdir =. Nəticəni aşağıdakı nümunədə görmək olar:

Qəribə, elə deyilmi? y = daha yüksək prioritetə ​​malik olduğundan, PHP kodu belə şərh edəcək:

($var = doğru) və yalan;

Bunlar. əvvəlcə $var-ı doğru olaraq təyin edir, sonra isə doğru və yanlış əməliyyatı yerinə yetirir, bu, dəyişənin dəyərinə təsir etmədiyi üçün mənasızdır.

  • Aşağıda operator prioritetləri olan bir cədvəl var. Onların bəziləri ilə artıq tanış olmusunuz. Cədvəldə operator nə qədər yüksəkdirsə, onun prioriteti bir o qədər yüksəkdir.
  • * / %
  • + - .
  • < <= > >=
  • == != === !== <> <=>
  • ++ -- ~ (int) (float) (string) (massiv) (obyekt) (bool) @
  • = += -= *= **= /= .= %= &= |= ^= <<= >>=

? : (üçlü operator)

İndi müəyyən edə bilərik ki, müqayisə operatorlarının (==, != və s.) üstünlüyü məntiqi operatorlardan daha yüksəkdir. Bu məlumat tapşırığı tamamlamaq üçün bizə faydalı olacaq. PHP aşağıdakı standartı dəstəkləyir məntiqi operatorlar

: "AND" və "&&" (məntiqi AND), "OR" və "||"

(məntiqi OR), "!"

(məntiqi DEYİL) və "XOR" (eksklüziv OR). Onların hamısı məntiqi ifadələrdə ifadənin qaytardığı nəticədən asılı olaraq proqramın icrasının bu və ya digər kursunu müəyyən etmək üçün istifadə olunur və “!” operatoru istisna olmaqla, binar operatorlara aiddir. , bu unardır. Məntiqi operatorlardan istifadə edərkən onların operandları Boolean məlumat növünə () çevrilir və nəticə operandların verilmiş məntiqi qiymətlərindən və məntiqi operatorun növündən asılıdır (bax cədvəl №1).

Məntiqi operatorların istifadəsi 2 nömrəli misalda göstərilmişdir.

false $a=0||false; //İndi $a==true, çünki 5->doğru və 8->doğru $a=5& //İndi $a==false, çünki "0"->false $a="0"& //İndi $a==true $a=!false; //İndi $a==false, çünki 5->doğru $a=!5; /* foo() funksiyası şuntlara görə çağırılmayacaq */ $a=(false&&foo()); $b=(doğru||foo()); $c=(false və foo()); $d=(doğru və ya foo()); /* Fərq "||" "və ya"dan və "&&" "və"dən */ //($a=(false||true)) $a=false||true kimi fəaliyyət göstərir; //(($a=false) və ya doğru) $a=yanlış və ya doğru kimi hərəkət edir; //($a=(false&&true)) $a=false& kimi hərəkət edir (($a=false) və doğru) $a=false və true; //İndi $a==5, (($a=5) xor 0) $a=5 xor 0 kimi hərəkət edir; //İndi $a==5, (($a=5) və 0) $a=5 və 0 kimi hərəkət edir; //İndi $a==5, (($a=5) və ya 0) $a=5 və ya 0 kimi hərəkət edir; //İndi $a==true, ($a=(5||0)) $a=5||0 kimi hərəkət edir; //İndi $a==false, ($a=(5&&0)) $a=5& //İndi $a==true, ($a=(5 xor 6)) $a=(5 xor) kimi hərəkət edir 6); ?>

Nümunə № 2.