WordPress’in geliştirilmesi için PHP’yi incelemek: Kontrol akışının temelleri
Bu PHP kontrol akışına giriş! Bu makale, WordPress’in geliştirilmesi için PHP’nin temellerini açıklayan dizimize devam ediyor. PHP’deki kontrol akışı hakkındaki tartışmamız, önceki makalede tartıştığımız bazı konuların temel anlayışına bağlıdır:
PHP kodu yürütme akışını kontrol etmenin ana formlarından biri olan PHP işlevi.
PHP fonksiyonundaki kontrol akışının önemli bir unsuru olan PHP dönüş deyimi.
Şimdi: PHP’deki kontrol akışı nedir ve neden tartışılması gerekiyor?
PHP kontrolünün akışı nedir? Kontrol akışı, her zaman çalışmayan kodları yazmanıza izin veren şeydir.
“PHP kontrol akışı” çok şaşırtıcı ve teknik geliyor, bu yüzden bir kavramın ne kadar sezgisel olduğunu kaçırmak kolay. Basitçe söylemek gerekirse, kontrol akışı her zaman çalışmayan kod yazmanıza izin verir. PHP kodumuzun her zaman doğrudan yukarıdan aşağıya, sayfadaki doğru sırayla yürütülmesini istemiyoruz ve kontrol akışı bize buna alternatifler veren şeydir. Yalnızca birisi yeni bir WordPress gönderisi yayınladığında veya yalnızca kullanıcı şu anda yönetici olarak dahil edildiğinde çalışması gereken kod yazdıysanız (veya yazmak istiyorsanız!) WordPress ve gerçekten de yazılım sistemi için.
Kontrol akışı, programlamada “bu-bu” mantıktan sabit bir tampondur. Kontrol akışı, programlamada sadece sürekli bir “iş yapmak” ın sabit bir vızıltısıdır: “Bir şeyler yap, sonra işleri yapın b, sonra işleri tekrar tekrar D ile birkaç kez belirledi, sonra belki de şeyler yapın , ancak sadece F ifadesi doğruysa. ” Yani bu kontrol akışı. “PHP kontrol grafiği nedir?” Özel bir şey yok: PHP’nin kontrol akışının kendisini kullandığı ve uygulama yolunu ifade eder. Bu kadar basit, kontrol akışı da çok önemlidir: çok önemli, Aslında, tamamen farklı iki teknik dil kategorisi üretilip üretmediğiniz. Daha ileri gittim, işyerinde PHP kontrol akışının çok temel bir örneğine bakalım: <? PHP echo 'Merhaba.'; // "Merhaba" yazdıracak. 'İyi günler.'; // Bu kod çalışmayacak. Echo 'selamlar'; // çalışmayacak. $ Yıl = tarih ('y'); // çalışmayacak. Koşmayacak. } Echo 'tekrar merhaba.' // "Tekrar" yazdıracak. Kontrol grafiği, belirttiğiniz belirli koşullara bağlı olarak "yalnızca bazen" çalışmaya neden olur.
Bu kısa örnekten, kontrol akışının çekirdeğini görebiliriz: bu, programcının belirlediğiniz belirli koşullara bağlı olarak kodun "sadece bazen" çalıştırmasına neden olur. Yukarıdaki kod söz konusu olduğunda, "bazen" aslında "asla" değildir, çünkü eğer ifade – sadece 1'e eşit olduğunda yürümeye ayarlanırsak, yukarıdaki kodun kafa karıştırıcı bir kısmı varsa, Detaylı olarak çok geç olun – gelecekte yine de birçok örnek (çok daha kullanışlı bir kod içeriyor!). Kontrol Akışı ve Dil Türü Bahsettiğim gibi, bazı teknik dillerin bir kontrol akışı vardır ve bazıları dil türünde büyük bir fark yaratır. Özellikle, bazı teknik dillerin bir kontrol akışı veya yapıp yapmadığı olup olmadığını belirlemeyin:
HTML veya CSS gibi bildirici dil veya
PHP veya JavaScript gibi zorunlu dil.
Bildirici dilde, yazdığınız her şey "her zaman görünür." Örneğin, .html dosyasına yazdığınız HTML, tarayıcı tarafından okuyacak ve yorumlanacak olan şeydir: hepsi, yukarıdan aşağıya, iki yol yoktur. Zorunlu dilde, kodunuzun hangi kısmının yürütüleceğine ve ne zaman yürütüleceğine karar verirsiniz. Zorunlu dilde, diğer taraftan, kodunuzun hangi kısmının yürütüleceğine ve hangi durumlarda karar veriyorsunuz.
Örneğin, evrenin yaşını hesaplayan bir milyon satırdan oluşan bir PHP komut dosyası yazabilirsiniz. Ve sonra tüm komut dosyasını (1 === 2) {} 'de sarabilirsiniz ve yukarıdaki örnekte olduğu gibi milyon satır hesaplama işlemlerinin hiçbiri tamamen yapılmayacaktır. Bu nedenle, kontrol akışı olmadan kesinlikle "kod yazabilir": örneğin, web sitesinin nasıl statik göründüğünü açıklamak için HTML ve CSS yazma. Ancak insanlar "programlama dillerinde yazma" hakkında konuştuğunda, genellikle zorunlu dilde yazmak anlamına gelirler, çünkü kontrol akışı – "farklı durumlarda farklı şeyler yapma" yeteneği – pek çok programlamanın çekirdeğidir. Kontrol ve örnekler Bu bölüm, basit bir kod örneği ile PHP'deki ana kontrol akış yapısını tanımlıyor ve açıklıyoruz. (Daha az yararlı) PHP kontrol yapısı doğrudan değil, dürüst olmak gerekirse, WordPress geliştiricisi olarak hiç kullanılmam gerekmeyen bazı PHP kontrol akış yapılarını tartışmayarak size yardımcı olacağız:
Switch: Bunun yararlı olabileceğini, ama aynı zamanda büyük ve garip olabileceğini hissettiriyor – ve aynı zamanda büyük ve garip olan kodda en yararlı olabilir. Önce yeniden düzenlemeyi deneyin.
For () -loop: Karıştırıcı Sözdizimi. () Daha basit görünüyor ve aynı şeyi yapabilir.
DECLARE (): Bugün daha önce hiç duymadım ve nedenini bildiğimi düşündüm. Beklenmedik bir kod yazmanın iyi bir yolu gibi görünüyor.
Garip eşyaların verilmesiyle, PHP'deki basit kontrol akışlarına örnekler:
if () -statement <? Php $ tebrik = 'hi';// "$ selamlama tam olarak 'HI' dizesine eşitse, sonra kodu çalıştırın" diyorsa ($ selamlama === 'hi') {echo $ selamlama.'!';// "Merhaba!"} // "$ selamlama tam olarak 'Merhaba' dizisine eşitse, sonra kodu çalıştırın" diyorsa ($ tebrik === 'Merhaba') {echo $ tebrik.',';// Bu kod çalışmayacak} $ selamlama = 'merhaba';// $ selamlama şimdi "merhaba" ise ($ tebrik === 'hi') {echo $ greth.'!';// Bu kod çalışmaz} ($ tebrik === 'Merhaba') {echo $ selamlama.',';// "Merhaba"} ise () -} -Sherif () dahil olmak üzere, aynı mantığı daha net ve daha verimli bir şekilde yazmak mümkündür. Elseif, IF -Initial deyiminden sonra görünen bir operatördür. .Elseif'teki kod yalnızca bunların her ikisi de doğrusa çalışır:
Aşağıdaki () -wal ve Elseif () s ifadesi mevcut ifadenin üzerindedir, her şey yanlıştır.
Elseif () koşulların kendileri doğrudur.
<? Php $ tebrik = 'merhaba';// "$ selamlama tam olarak 'merhaba' eşitse, o zaman içindeki kodu çalıştırın" diyorsa ($ selamlama === 'hi') {echo $ tebrik.'!';// "Merhaba!"} // "If () -statement yanlış, // * ve * $ selamlama tam olarak 'merhaba' eşitse, o zaman" Elseif ($ tebrik === 'Merhaba') {echo $ tebrik içindeki kodu çalıştırın .',';// Bu kod çalışmayacak} $ selamlama = 'merhaba';// $ selamlama şimdi "Merhaba" // Aşağıda aynı if-elseif blok birlikte ($ selamlama === 'hi') {echo $ tebrik.'!';// Bu kod çalışmaz} elseif ($ tebrik === 'merhaba') {echo $ tebrik.',';// "Merhaba" yazdırır} Bu kod, yukarıdaki örnekle tamamen aynı davranır, ancak birkaç satır tutar.Aynı zamanda "merhaba" ve "merhaba" olamayacağı gerçeğini daha da açık bir şekilde yakalıyor -bu yüzden "merhaba" seçeneği gerçekten bir elseif () olarak kabul edilmek için gerçekten açıktır () -a. Tamamen ayrılmış bir şey hakkında açıklama.
() -loop döngüsü bir kereden fazla bir şeyler yapabilen bir yapıdır. WordPress için PHP'de yararlı olan ana döngüler, () ve foreach () döngüdür. Aşağıdakiler while () -dloop eylemde: $ i = 0; // $ I 0 // Bu while () -loop $ I $ 3, ($ i <3): echo 'merhaba ve $ i' 'i daha az olduğu sürece çalışmaya devam edecektir. $ i. '| '; $ i ++; // Bu, "$ 1 artışı 1" anlamına gelir; Bu döngü üç kez çalışacak, aşağıdakileri yazdıracak: Merhaba ve I $ 0 | Merhaba ve $ 1 | Merhaba ve $ 2 | Merhaba ve $ I 0 | Merhaba ve $ 1 | Merhaba ve $ 2 | Dördüncü "döngüye" ne oldu? Şu anda, $ i aslında 3'e eşittir, bu da 3'ten az değildir. Alternatif PHP Sözdizimi ile ilgili yan notlar bu arada, yukarıdaki örneğin alternatif sözdizimi kullandığını lütfen unutmayın: while () {} yerine, while () dedi: son zaman. Gerçek şu ki, her iki şey de PHP'de aynı anlama sahiptir: her ikisi de aynı temel mantık için alternatif sözdizimi ("nasıl ifade edilir"). Bu makaledeki hemen hemen tüm PHP kontrol yapıları iki şekilde yazılabilir: while () {} veya while (): son while; if () {} veya if (): endif; Foreach () {} veya foreach (): endforeach;
Vb. Bu yapı aynı davranır, bu nedenle seçtiğiniz yazı stili tercihlerin sorunu ve hangi kodlama standartlarını takip ettiğinizdir. En büyük şey, seçtiğiniz herhangi bir sözdizimini kullanmakta tutarlı olmanın iyi olmasıdır. PHP'yi mahvetmek istiyorsanız sınırsız döngülerden kaçınmayı öğrenin – ve web sitenizin veya müşterinizin kullanılamamasını sağlayın – sonra sonsuz döngü çalıştırın: $ i = 0; // $ I 0 // bu while () -loop $ I $ 3, ($ i <3): echo 'oh no'; Sonunda; Bu döngü sonsuza kadar çalışacak, oh hayır oh hayır oh hayır oh hayır oh hayır oh hayır oh hayır oh hayır oh hayır oh hayır oh hayır oh hayır oh hayır oh hayır oh hayır oh hayır oh hayır, nihayet karar verene ve zaman bitiyor. Önceki örnekten ne değişti? Artık $ i ++ yok; $ İ artıran satır döngü her çalıştığında 1'dir. $ ben 0'da sıkışmış kalıyorum, bu her zaman üçten az, bu yüzden döngü asla durmaz. Döngünüzün her zaman durmak için bir nedene ihtiyacı vardır. Foreach () -Loops Loop Foreach () PHP, belirli bir veri türü ile çalışan bir işlemdir: dizi. Foreach () 'i yaptığı şey, "verilen dizideki her öğe için bir kez aynı şey" idi. Örneğe bakalım:
Yukarıdaki örnek aşağıdaki gibi yazdırılacaktır: Süte ihtiyacım var! Yumurtaya ihtiyacım var! Çikolataya ihtiyacım var! Süte ihtiyacım var! Yumurtaya ihtiyacım var! Çikolataya ihtiyacım var! İlişkili dizi (daha karmaşık bir yapıya sahip dizi) ile çalışan daha karmaşık bir foreach () kullanımı vardır, ancak daha sonra olmasına izin vereceğiz. PHP işlevi PHP işlevi hakkındaki makalemizde tartıştığımız gibi, bir işlevin özü, işlevin doğrudan çalışmadığıdır. O zaman bundan bahsetmedik, ama bu aslında kontrol akışı hakkında bir ifadeydi. Makalenin en temel işlevine tekrar bakalım: İşlev, yalnızca gerektiğinde mantık bitini çağırmanın en iyi yoludur ve PHP kontrol akışı ve burada listelenen diğer dillerin inşasının temelidir. Return ve Compress Akımı PHP Return ifadesi ile ilgili makalenin tamamında tartıştığımız gibi, geri dönüş bir işlevin yürütülmesini durduracak ve sipariş edilen her şeyi geri yükleyecektir. Bu, kontrol akışının önemli bir unsurudur. <? PHP Fonksiyon Multom ($ num1, $ num2) {Return $ num1 * $ num2; Echo 'muz'; // Koşmayacak! Zaten döndürme işlevi} echo çarpma (4, 5); // "20" yazdıracak bir işlevde, geri dönüş "zor fesih" ve genellikle "İşinizi iade edin".