internet pencereler Android

Php switch deyimi değer ifadesi. Php if, switch ve üçlü deyim

Koşul ve seçim, dilin temel yapılarıdır. Doğru karar verme, yüksek kaliteli bir algoritmanın ve açık, anlaşılması kolay kodun temelidir. Algoritmanın doğru tasarımı ve yorumların doğru kullanımı kararlılık ve güvenilirlik faktörleri arasındadır.

Modern programlama hala katı değildir. Kod bir kez yazıldığında, değişen sorun koşullarına ancak yetkin bir kişinin yardımıyla uyum sağlayabilir. Yine de, kod taşınabilirlik düzeyi, yazarının beceri düzeyine göre belirlenir.

Seçim yapısı sözdizimi

PHP anahtar durumu seçim yapısının yazılması çok kolaydır, doğru bir şekilde yürütülür ve pratikte kullanışlıdır. Örnek, metni süsleyen bir işlev sunar HTML etiketleri... İlk parametre "kalın" veya "italik" içeriyorsa, işlev sonucu ikinci parametreyi "güçlü" veya "i" etiketleriyle sarar.

Tarayıcıdaki sonuç, ikinci parametrenin içeriğini kalın veya italik biçimde görüntüler. İlk parametrenin diğer herhangi bir değeri bir renk olarak yorumlanır ve ikinci parametreyi bir "font" etiketi ile sarar.

Bu işlev, başlangıç ​​parametrelerinin doğruluğunu kontrol etmez ve yalnızca kodun, parametrelerin izin verilen sınırların ötesine geçemediği kısmında kullanılabilir.

Önerilen örnekte, "break" operatörünün kullanımı gereksizdir, çünkü herhangi bir koşulun yürütülmesinin bir sonucu olarak, "return" operatörü tarafından fonksiyondan çıkılacaktır.

PHP yapı açıklaması: geçiş durumu

Kontrol edilen koşul, parantez içinde yazıldıktan sonra anahtar kelime"değiştirmek". Yapının gövdesi, "vaka" bölümlerinden ve yalnızca "vaka" bloklarından hiçbiri işe yaramadığında yürütülen bir "varsayılan" ifade bloğundan oluşur.

Çok önemli bir nüans var. "case" deyim bloğu ":" sembolünden sonra başlar ve "break" deyimi ile biter. "break" ifadesi isteğe bağlıdır. Değilse, bir sonraki "vaka" koşulu kontrol edilecektir. Koşullar her zaman ilk maça kadar kontrol edilir. Doğal olarak, buradaki koşullar sadece "==".

Her "durum" bölümü yalnızca koşul karşılandığında yürütülür, ancak "vaka" bölümünde tetiklenen eksik bir "break" ifadesi varsa veya hiçbir koşul eşleşmezse "varsayılan" ifade bloğu her zaman yürütülür.

Aslında, PHP'de: çok değerli bir anahtar durumu, birden çok ifade bloğuna sahiptir. Sözdizimini resmi olarak takip etmek için, her ifade bloğu bir "break" ile sonlandırılmalıdır.

Koşul eşleşir eşleşmez, ilgili bölüm yürütülür ve içinde "kırılma" yoksa, onu takip eden her şey yürütülür. Örnekte, "$ x" değişkeninin değeri 1'dir ve "kesme" yoktur, dolayısıyla sonuç "-bir - iki - varsayılan-" olur.

koşullu yuvalama

Dil, geliştiriciyi yuvalama düzeyinde sınırlamaz. Bir anahtar kasasının yuvalanmasına izin verilir. PHP ayrıca programcıyı bir durum içinde kullanılabilecek operatörlerin seçiminde kısıtlamaz.

Bu, güzel ve okunması kolay algoritmalara izin verir. Örneğin, bir CSS kural tablosunun tanınması gerekir. PHP anahtar durumunu hemen sınıfları ve tanımlayıcıları tanıyacak şekilde ayarlayabilir, ardından kuralların kendilerini tanıyabilirsiniz. Bu bariz bir çözüm, ancak zahmetli. Hem sınıflar hem de tanımlayıcılar benzer kurallar kullanır.

Anahtar durumu kullanarak kural tanıma gerçekleştirmek daha uygundur. PHP'ye kural tanımayı işleyecek bir işlev ekleyebilirsiniz. Daha ileri gidebilirsiniz. Birçok kural benzer anlamlara izin verir. Bu şekilde düşünerek, ters işlemi oluşturmaya çalışın: PHP'deki switch durumu fonksiyonlar şeklinde yürütülecek, ilki değer seviyesinde, ikincisi kural seviyesinde ve üçüncüsü seviyesinden çağrılacak. belirli bir sınıf veya tanımlayıcı.

Özel bir seçim tasarımı kullanılması tavsiye edilir. yer değiştir... Bu yapı, belirtilen ifadenin değerine bağlı olarak eylemleri seçmek için tasarlanmıştır. Tasarım yer değiştir biraz inşaata benziyor eğer-else, aslında onun karşılığıdır. Seçim yapısı, örneğin 5'ten fazla önerilen birçok seçenek varsa ve her seçenek için belirli eylemlerin gerçekleştirilmesi gerekiyorsa kullanılabilir. Bu durumda yapının kullanımı eğer-else gerçekten rahatsız olur.

Yapı sözdizimi yer değiştirçok:

geçiş (ifade) (

durum değeri2: komutlar2;
. . .


}

Yapının çalışma prensibi yer değiştirçok:

  1. İfadenin değeri hesaplanır;
  2. Bir dizi değer görüntülenir. Değer1 ilk adımda hesaplanan ifadenin değerine eşit olsun. Eğer yapı (operatör) break belirtilmez ise i, i + 1, i + 2, ..., N komutları çalıştırılır.Aksi takdirde (break varsa) sadece i numaralı komut çalıştırılır. uygulanmış.
  3. Kümedeki değerlerin hiçbiri ifadenin değeriyle eşleşmezse, belirtilirse varsayılan blok yürütülür.

Yapının kullanımına örnekler verelim yer değiştir:

$x = 1;
// if-else kullan
eğer ($ x == 0) (
yankı "x = 0
" ;
) elseif ($ x == 1) (
yankı "x = 1
" ;
) elseif ($ x == 2) (
yankı "x = 2
" ;
}
// Switch-case kullan
geçiş ($ x) (
durum 0:
yankı "x = 0
" ;
kırmak;
dava 1:
yankı "x = 1
" ;
kırmak;
durum 2:
yankı "x = 2
" ;
kırmak;
}
?>

Dikkate alınan komut dosyası çıktıları x = 1 iki kere. İnşaatı kullanmanın başka bir örneği yer değiştir:

$x = "Elma";
geçiş ($ x) (
durum "Elma":
echo "Bu bir Elma";
kırmak;
durum "Armut":
echo "Bu Armut";
kırmak;
durum "Karpuz":
echo "Bu Karpuz";
kırmak;
}
?>

Bu komut dosyası "Bu bir Apple'dır" mesajını görüntüler.

Tasarım değiştirmek aşamalar halinde gerçekleştirilir. İlk başta, hiçbir kod yürütülmez. Sadece inşaat yapıldığında durum ifadenin değeriyle eşleşen bir değerle bulundu değiştirmek, PHP yapıları yürütmeye başlar. PHP, bloğun sonuna kadar yapıları yürütmeye devam eder. değiştirmek operatöre kadar kırmak... Yapıları kullanmazsanız (operatörler) kırmak, komut dosyası şöyle görünecek:

$x = 0;
geçiş ($ x) (
durum 0:
yankı "x = 0
" ;
dava 1:
yankı "x = 1
" ;
durum 2:
yankı "x = 2
" ;
}
// Break çıkışları kullanmadan
// x = 0
// x = 1
// x = 2
?>

için operatör listesi durum boş da olabilir, sadece bir sonraki inşaata kadar kontrolü operatör listesine aktarır durum:

geçiş ($ x) (
durum 0:
dava 1:
durum 2:
Eko "x, 3'ten küçük, ancak negatif değil";
kırmak;
durum 3:
yankı "x = 3";
}
?>

Kümeden hiçbir değer ifadenin değeriyle eşleşmediğinde, blok yürütülür. varsayılan belirtilmişse, örneğin:

$x = 3;
geçiş ($ x) (
durum 0:
yankı "x = 0";
kırmak;
dava 1:
yankı "x = 1";
kırmak;
durum 2:
yankı "x = 2";
kırmak;
varsayılan:
Eko "x, 0, 1 veya 2 değil";
}
?>

Bu komut dosyası çıktıları "x, 0, 1 veya 2 değil" değişken olduğundan beri $ x = 3.

geçiş (ifade):
durum değeri1: komutlar1;
. . .
durum değeriN: komutlarN;
]
uç anahtarı;

Bir yapı için alternatif sözdizimi kullanmanın pratik bir örneği yer değiştir:

$x = 3;
geçiş ($ x):
durum 0:
yankı "x = 0";
kırmak;
dava 1:
yankı PHP portalı forumu. SU

Ders, php koşullu deyimlerini kapsayacaktır: if deyimi ve switch deyimi

Php koşullu ifadeler üç ana yapı ile temsil edilir:

  • koşul operatörü Eğer,
  • operatör değiştir değiştirmek
  • ve üçlü operatör.

Her birine daha yakından bakalım.

PHP if ifadesi

Şekil 3.1. Koşullu EĞER ifadesi, kısaltılmış versiyon


Pirinç. 3.2. IF ELSE koşullu ifade sözdizimi


Pirinç. 3.3. IF elseif koşullu deyimi için tam sözdizimi

Özetleyelim:

Tam sözdizimi:

if (koşul) (// koşul doğru ise işleç1; işleç2;) elseif (koşul) (işlemci1; ...) başka (// koşul yanlışsa işleç1; işleç2;)

  • Kısaltılmış sözdizimi else ile yapının bir bölümünü içermez ve başka bir ek koşul içermez.
  • elseif fonksiyon kelimesi yerine, else if (ayrı ayrı) yazabilirsiniz.
  • Bir if ifadesinde birkaç elseif olabilir. TRUE değerine eşit ilk karşılaşılan elseif ifadesi yürütülür.
  • Elseif alternatif bir koşul varsa, else yan tümcesi sözdiziminde en son gelmelidir.

İki nokta üst üste: koşullu ifadelerde kaşlı ayraçlar yerine kullanılabilir. Bu durumda operatör endif servis kelimesi ile biter.

Pirinç. 3.4. PHP'de If ve Endif koşullu ifade

Örnek:

if ($ x> $ y): echo $ x "büyüktür". $ y; elseif ($ x == $ y): // ":" kullanılırken echo $x. "eşittir" ise ayrı ayrı yazamazsınız. başka: echo $ x. "değil> ve değil =". $ y; endif;

Önemli: Aksi takdirde kaşlı ayraçlar yerine iki nokta üst üste kullanıldığında iki kelime yazamazsınız!

Bir koşuldaki mantıksal işlemler

Parantez içindeki if yan tümcesinde aşağıdaki işlemler bulunabilir:

Örnek: sayısal bir değişkenin değerini kontrol edin: 10'dan küçük veya ona eşitse, - bir mesaj yayınlayın "10'dan küçük veya 10'a eşit sayı", tersi durumda, bir mesaj yayınlayın "Sayı 10'dan büyük"


Çözüm:

$ sayı = 15; eğer ($ sayısı<=10) { echo "число меньше или равно 10"; } else { echo "число больше 10"; }

PHP kod blokları kırılabilir, bir örnek düşünün:

Örnek: HTML kodunu görüntüle "A eşittir 4"$ a değişkeni gerçekten 4 ise


1 Çözüm:
1 2 3 4

2 Çözüm:

1 2 3 A eşittir 4

A eşittir 4

Php işi 3_1: Renklerin çevirisini görüntüle İngilizce dili Rusça'ya, değişkenin değerini kontrol ederek (renk atanmış: $ a = "mavi")


Php işi 3_2: En fazla üç sayıyı bulun

Karşılaştırma işlemleri ve yalanın kuralı

if ifadesinde parantez olmalı boole ifadesi veya mantık cebiri açısından değerlendirilen, doğru veya yanlış değerler döndüren bir değişken

Onlar. tek bir değişken koşul olarak kullanılabilir. Bir örnek düşünelim:

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

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

Örnekte, php dili tercümanı yalan kuralı için parantez içindeki değişkeni dikkate alacaktır:

LIE kuralı veya yanlış olduğu düşünülen şey:

  • mantıklı YANLIŞ
  • tamsayı sıfır ( 0 )
  • geçerli sıfır ( 0.0 )
  • boş satır ve çizgi «0»
  • elemansız dizi
  • değişkensiz nesne
  • özel Tip BOŞ

Bu nedenle, ele alınan örnekte, $ a değişkeni sırasıyla bire eşittir, koşul doğru olacaktır ve operatör echo $ a; değişkenin değerini gösterecektir.

Php işi 3_3: dize değeri olan bir a değişkeni verildi. a isme eşitse, çıktı "Merhaba isim!", a boş bir değere eşitse, çıktı "Merhaba yabancı!"

Koşullu operatörde AND OR ve NOT mantıksal yapıları

  1. Bazen birkaç koşulun aynı anda yerine getirilmesini sağlamak gerekir. Sonra koşullar birleşir mantıksal AND operatörü — && :
  2. $ a = 1; if ($ a> 0 || $ a> 1) (echo "a> 0 veya a> 1";)

  3. Koşulun yanlış olduğunu belirtmek için şunu kullanın: mantıksal NOT operatörü — ! :
  4. 1 2 3 4 $ a = 1; eğer (! ($a< 0 ) ) { echo "a не < 0" ; }

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

PHP deyimini değiştir

switch ifadesi veya "switch", birkaç ardışık if ifadesinin yerini alır. Bunu yaparken, bir değişkeni bir dizi değerle karşılaştırır. Bu nedenle, en uygun çözümdür. çok şubeli organizasyon için.

Sözdizimi:

1 2 3 4 5 6 7 8 9 10 switch ($ değişkeni) (durum "değer1": ifade1; kırılma; durum "değer2": ifade2; kırılma; durum "değer3": ifade3; kırılma; [varsayılan: ifade4; kırılma;])

switch ($ değişkeni) (durum "değer1": ifade1; kırılma; durum "değer2": ifade2; kırılma; durum "değer3": ifade3; kırılma;)

  • Operatör, hem dize değerlerini (bu durumda tırnak içinde belirtilirler) hem de sayısal (tırnak işaretleri olmadan) kontrol edebilir.
  • Yapıdaki break ifadesi gereklidir. Koşul doğruysa ve koşula karşılık gelen ifade yerine getirilirse yapıdan çıkar. Ara vermeden, tüm vaka ifadeleri, doğruluklarına bakılmaksızın yürütülür.

Pirinç. 3.5. Koşullu Anahtar ifadesi


Örnek: tam eril isimlere sahip bir dizi verilir. Dizinin ilk öğesini kontrol edin ve ada bağlı olarak kısa adla bir selamlama yapın.


Çözüm:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 $ isimler = dizi ("Ivan", "Peter", "Semyon"); switch ($ name [0]) (case "Peter": echo "Merhaba Petya!"; break; case "Ivan": echo "Merhaba, Vanya!"; break; case "Semyon": echo "Merhaba, Vanya! "; break; varsayılan: yankı" Merhaba, $ isimler!"; kırmak; )

$ isimler = dizi ("Ivan", "Peter", "Semyon"); switch ($ isimler) (case "Peter": echo "Merhaba Petya!"; break; case "Ivan": echo "Merhaba Vanya!"; break; case "Semyon": echo "Merhaba, Vanya!"; break ; default: echo "Merhaba, $ isimler!"; break;)

Php işi 3_4:

  • $ day değişkeni oluşturun ve ona rastgele bir sayısal değer atayın
  • İfadenin çıktısını almak için switch ifadesini kullanın "Bu bir iş günü"$ gün değişkeninin değeri 1 ile 5 (dahil) arasındaki sayı aralığına giriyorsa
  • İfadeyi çıkar "Bugün izinli bir gün"$day değişkeninin değeri 6 veya 7 ise
  • İfadeyi çıkar "Bilinmeyen gün"$ gün değişkeninin değeri 1'den 7'ye (dahil) sayı aralığında değilse

Kodu tamamlayın:

1 2 3 4 5 6 7 8 9 10 11 12 ... geçiş (...) (durum 1: durum 2: ... yankı "Bu bir iş günü"; kırmak; durum 6: ... varsayılan: ...)

Anahtar (...) (durum 1: durum 2: ... echo "Bu bir iş günüdür"; ara; durum 6: ... varsayılan: ...)

PHP üçlü operatör

Üçlü operatör, yani üç işlenen ile, oldukça basit bir sözdizimine sahiptir, hangisinde solunda? koşul yazılır ve sağda - işaretiyle ayrılmış iki operatör:, işaretin solunda, koşul doğruysa operatör ve işaretin sağında: koşul doğruysa operatör yürütülür YANLIŞ.

şart? operatör1: operatör2;

Şebeke değiştirmek aynı koşula sahip bir dizi IF ifadesine benzer. Çoğu durumda, aynı değişkeni (veya ifadeyi) birçok farklı değerle karşılaştırmanız ve bu değişkenin (veya ifadenin) aldığı değere bağlı olarak kodun farklı bölümlerini çalıştırmanız gerekebilir. Operatörün uygun olduğu durum tam olarak budur değiştirmek.

Yorum Yap: Diğer bazı dillerden farklı olarak, devam deyiminin switch yapılarında kullanıldığını ve aşağıdaki gibi davrandığını unutmayın. kırmak... Bir döngü içinde bir switch ifadeniz varsa ve döngünün bir sonraki yinelemesine gitmeniz gerekiyorsa, şunu kullanın: devam 2.

Yorum Yap:

Swich / case yapısının kesin olmayan karşılaştırmalar (==) kullandığını unutmayın.

Sonraki iki örnek, aynı şeyi yazmanın iki farklı yolunu göstermektedir. Biri bir dizi operatör kullanır Eğer ve başka türlü diğeri ise operatör değiştirmek:

Örnek # 1 Operatör değiştirmek
if ($ i == 0) (echo "i 0'dır";) elseif ($ i == 1) (echo "i 1'dir";) elseif ($ i == 2) (echo "i 2'dir"; ) geçiş ($ i) (durum 0: yankı "i 0"; ara; durum 1: yankı "i 1"; ara; durum 2: yankı "i 2"; ara;)
Örnek # 2 Operatör değiştirmek dizelerle karşılaştırılabilir
switch ($ i) (case "elma": echo "i bir elmadır"; break; case "çikolata": echo "i bir çikolatadır"; break; case "turta": echo "i bir turtadır"; break ;)

Operatörün nasıl çalıştığını anlamak önemlidir. değiştirmek hatalardan kaçınmak için yürütülür. Şebeke değiştirmek satır satır yürütür (aslında ifadeye göre ifade). Başlangıçta hiçbir kod yürütülmez. Yalnızca operatör bulunursa durum değeri operatördeki ifadenin değeriyle aynı olan değiştirmek, PHP deyimleri yürütmeye başlar. PHP, bloğun sonuna kadar ifadeleri yürütmeye devam eder. değiştirmek veya operatörle buluşana kadar kırmak... Operatör yazmadığınız sürece kırmak case bölümünün sonunda PHP bir sonraki case bölümünün komutlarını yürütmeye devam edecektir. Örneğin:

Anahtar ($ i) (durum 0: yankı "i 0"; durum 1: yankı "i 1"; durum 2: yankı "i 2";)

Bu örnekte, eğer $ i 0 ise, PHP tüm yankıları yürütecektir! $ i 1 ise, PHP son iki eko ifadesini çalıştırır. Beklenen operatör davranışını elde edersiniz ("i eşittir 2" görüntülenecektir) ancak $ i 2'ye eşitse, operatörleri unutmamak önemlidir. kırmak(belirli koşullar altında amacına uygun olarak kullanmaktan kaçınmak isteseniz bile).

operatörde değiştirmek ifade bir kez değerlendirilir ve bu sonuç her operatörle karşılaştırılır. durum... ifadede başka türlü, ifade tekrar değerlendirilir. Durumunuz basit bir karşılaştırmadan daha karmaşıksa ve/veya bir döngüdeyse, yapı değiştirmek daha hızlı koşabilir.

Vaka bölümünde yürütülecek ifadelerin listesi de boş olabilir, bu da kontrolü basitçe bir sonraki vaka bölümündeki ifadeler listesine aktarır.

Anahtar ($ i) (durum 0: durum 1: durum 2: yankı "i 3'ten küçük, ancak negatif değil"; break; durum 3: yankı "i 3'tür";)

Özel bir durum yapısı türü varsayılan... Kontrol, diğer vaka ifadelerinin hiçbiri tetiklenmediğinde buraya gelir. Örneğin:

Anahtar ($ i) (durum 0: echo "i is 0"; break; case 1: echo "i is 1"; break; case 2: echo "i is 2"; break; varsayılan: echo "i 0 değil , 1 yada 2"; )

Operatördeki ifade durum basit bir türe, yani bir tamsayı türüne veya kayan nokta türüne (kayan nokta) veya bir dizeye dönüştürülen herhangi bir ifade olabilir. Diziler veya nesneler, basit bir türe başvurulmadan burada kullanılamaz.

Anahtar kontrol yapısı için alternatif bir sözdizimi mümkündür. Daha fazla ayrıntı için bkz. Kontrol Yapıları için Alternatif Sözdizimi.

Anahtar ($ i): durum 0: echo "i 0'dır"; kırmak; durum 1: yankı "i 1'dir"; kırmak; durum 2: yankı "i 2'dir"; kırmak; varsayılan: echo "i 0, 1 veya 2'ye eşit değil"; uç anahtarı;

Case ifadesinden sonra iki nokta üst üste yerine noktalı virgül kullanmak mümkündür. Örneğin:

Anahtar ($ bira) (durum "tuborg"; durum "carlsberg"; durum "heineken"; yankı "İyi seçim"; ara; varsayılan; yankı "Lütfen yeni bir seçim yapın ..."; ara;)

switch ifadesi, IF ELSEIF ELSE yapısına benzer ve değere bağlı olarak farklı eylemler gerçekleştirmenize izin verir.

Aşağıdaki kodda, aynı sorunun if ve switch kullanılarak nasıl çözülebileceğini görebilirsiniz:

Anahtar yapısı gevşek bir == karşılaştırması kullanır.

Parantez içinde, diğerleriyle karşılaştırılacak bir değer koyarız. Ardından durum, karşılaştırılacak değer ve iki nokta üst üste gelir. Sonra yürütülecek komutlar var. Herhangi bir vaka bloğu yürütülmezse varsayılan blok yürütülür.

break ifadesi, anahtarın geçerli yürütmesini kesintiye uğratır. Gerçek şu ki, switch farklı durum bloklarında olsalar bile tüm komutları arka arkaya yürütür:

"; durum 2: yankı" Durum: Teslim edildi
"; break; case 3: echo" Durum: Tamamlandı
"; kırmak;)?>

Tarayıcıda sonuç:

Durum: İşleniyor Durum: Teslim Edildi

Gördüğünüz gibi, 2 vaka bloğu yürütüldü. Birincisi koşula uyması, ikincisi ise ilk blokta herhangi bir kesinti olmamasıdır.

CASE'de birden çok değer

Ayrıca, bir anahtarda, birkaç değer için bir kod bloğu kullanabilirsiniz:

Genellikle if ve geçiş arasındaki seçim yalnızca geliştirici tercihine göre yapılır. Şahsen ben asla anahtarı kullanmam çünkü if-else yapıları If-else'yi daha çok seviyorum.