PHP7’de Geri Yükleme Türü Bildirimi için Giriş
Geçen hafta, PHP’de Tip Intting hakkında yazdım. Tip talimatları bir işlevin amacını daha net hale getirir ve değeri belirli bir değer türü göstermeye zorlar. Her ne kadar yalnızca işlevden değişken türünü kontrol etme ihtiyacını ortadan kaldırmak için belirli değer türlerini kabul eden bir işleve sahip olsa da, işlevi çağırmadan önce bu türü kontrol etmek zorunda olmadığınız anlamına gelmez. Değişkenleri yanlış tipte ölümcül hatalarla geçmek. Örneğin, get_post_meta () neredeyse tüm verileri geri yükleyebilir. Diziyi geri yüklemeyi beklediğiniz şekilde kullanırsanız, beklenen sonuçları döndürüp döndürmeyeceğini kontrol etmeniz gerekir. Bu nedenle, parametrelerden biri için bir dizi gerektiren bir işleviniz varsa, yanlış veya diğer türleri değil, beklenen Get_post_meta () türünün sonuçlarını alıp almadığınızı kontrol etmeniz gerekir.
Her zaman bir dizi sağladığı garanti edilen get_post_meta () etrafında soyutlama yapabiliyorsanız, dönüş değerini bir dizi gerektiren bir işleve güvenli bir şekilde devam ettirebilirsiniz. PHP5’te her zaman diziyi geri yüklemesi gereken işlevler yazabiliriz, ancak bu şekilde programlanmış ilan etmenin bir yolu yok. Evet, bir dizi belge insanlara ve ne beklendiğini bilmenin fikrine yardımcı olur. Ancak bu derleyicilere yardımcı olmaz veya sonuçları garanti etmez. PHP7, bunu yapmamızı sağlayan iade türünün beyanını tanıtıyor. Dönüş türünün bildirimi, dönüş fonksiyonunun değerinin belirli bir türden olması gerekir.
Profesyoneller ve Karşı Bildiri Geri Dönüş Türü Dönüş türü bildirimi kullanmak için iki ana argüman vardır. Birincisi, getirinin türü açıkça bildirildiği için doğrudan etkilenen performans. Bu, PHP derleyicisinin bunu bilmesi gerekmediği anlamına gelir, bu da derlemeyi daha hızlı hale getirir. Dönüş türü bildirimini kullanmanın bir başka argümanı, tür talimatlarının kullanımına benzer: bu argüman beklenen kodun amacını ve kullanımını açıklığa kavuşturur. Tıpkı yazma talimatları gibi, dinamik olarak yazılan dil tarafından sağlanan esnekliğin bir kısmını kaybedersiniz. Bu nedenle, netlik esnekliğini ve performansı iyileştirme olasılığını almaya değer olup olmadığına karar vermelisiniz. Bir sürüm muayenesi oluştursanız bile, WordPress.org, eklentilerin veya temaların PHP 5.5 veya daha yeni eklenen sözdizimini kullanmasına izin vermez. Öte yandan, ilk önce PHP7 ve PHP7 özelliklerini çalıştıran siparişte çalışıyorsanız, bunun gibi yararlıdır, neden kullanmıyorsunuz? Bu yazıya girişte bir örnek, get_post_meta () gibi işlevlerin her zaman beklenen değeri geri yükleyeceği varsayımına dayanarak sorunu tartışıyorum. Her zaman belirli bir meta tuşuna bir dizi koysanız bile, belirli yayınlar için veri kümesi yoksa veya var olmayan yayınlar için meta yayınlar almaya çalışırsanız ne olur?
Amacınız meta post değerini bir dizi gerektiren bir işlevle kullanmaksa, PHP5’inizde herhangi bir zamanda get_post_meta () tarafından döndürülen değeri test etmek zorunda kalırsınız. PHP7’de get_post_meta () etrafına sadece diziyi geri almanızı sağlamakla kalmaz, aynı zamanda dönüş türünün beyanıyla açık hale getirir. İşte bunu yapan bir sınıf örneği: posta = $ yazı;
}
Genel işlev get_all (): dizi {
return get_post_meta ($ this-> post-> id);
}
Get_key genel işlevi ($ meta_key) {
$ meta = get_post_meta ($ this-> post-> id, $ meta_key);
if (! Is_array ($ meta) &&! boş ($ meta)) {
geri [$ meta];
} elseif (boş ($ meta)) {
dönüş [];
} değilse {
Dönüş $ meta;
}
}
}
Gördüğünüz gibi, burada her zaman diziyi geri yükleyecek iki yöntemimiz var. Bu bizim için kodu okuyan insanlar olarak açıktır – eğer yeni sözdizimini biliyorsak. Ayrıca daha az kod yapacak – ek sınav kodu değil – ve PHP derleyicileri tarafından ayrıştırılması daha hızlı olacaktır. PHP5 ile uyumlu olmayan yeni sözdizimini kullanmak için yeni sözdizimi talimatları. İşte bu sözdiziminin temel bir örneği: <? Php
İşlev total_posts (wp_query $ sorgusu): int {
dönüş sayımı ($ query-> gönderiler);
} Php5’te bu, bu mesajla ölümcül bir hata üretecektir:
Ayrışma hatası: Sözdizimsel hata, ‘:’ Beklenmedik, bu PHP7’deki ‘{‘, dönüş türünün bir beyanı olarak yorumlanmasını bekleyin. Bildirge “int” olduğundan, bu işlev tamsayıları geri yüklemeli veya hatalara neden olmalıdır. Basit bir WordPress API istemcisi yapmak için talimatların türünü ve Türü Bildirimi’ni kullanan bir örnek: root = $ wp_root;
}
Queri genel işlevi (int $ sayfa) {
$ başlıklar = dizi (‘kabul’ => ‘uygulama/json’);
$ request = istek :: get ($ this-> root. ‘direkler/’, $ başlıklar, [‘sayfa’ => $ sayfa]);
$ this-> direkler = json_decode ($ request-> gövde);
}
Genel işlev get_total_posts (): int {
if (boş ($ this-> gönderiler) ||! Is_array ($ this-> gönderiler) {
Geri 0;
}
dönüş sayısı ($ this-> gönderiler);
}
Genel işlev get_posts (): dizi {
Dönüş $ this-> gönderiler;
}
} Bu sınıftaki son iki yöntem, Dönüş Türü Bildirimi’ni kullanır. Get_total_count () yöntemi bir int türü bildirimi kullanır ve bu nedenle tamsayı geri yüklemelidir, Get_Posts () yöntemi dizi dönüş bildirimi türünü kullanır ve bu nedenle diziyi geri yüklemelidir.
Bu örneğin WordPress 4.6 veya daha yeni bir talep kütüphanesi kullandığını unutmayın. Dönüş Türü Beyanı kullanmalı mısınız? PHP çok popüler çünkü esnek ve öğrenmesi nispeten kolaydır. Bunların çoğu, dinamik yazmanın sağladığı esneklikten kaynaklanmaktadır. Ancak bu esneklik PHP performansını sınırlar. PHP, internette en çok işlem gören sitelerin bazılarını destekler – WordPress.com, Facebook, Wikipedia, Etsy ve daha fazlası. PHP’yi daha az esnek hale getiren yeni dil konvansiyonu, ancak PHP’yi bu ölçekte kullanmanın zorluklarını karşılamak için daha fazla performansa ihtiyaç var. Şahsen, ilk 10 web sitesini yapmıyorum, ancak bu yeni dil yapısı benim için hala önemli. WordPress, küçük bir sunucudaki yetenekleri nedeniyle olağanüstü. Kodumuzun performansı ne kadar çok olursa, daha az sayıda sunucu kaynağına ihtiyacımız var ve bu, kodun ortak barındırma ve şirketin ortamında çalışması beklenen WordPress dünyasında büyük bir sorundur. Dilimiz daha olgun ve onunla yapabileceğimiz çok ilginç. Umarım bu makale, bilgisayarınızda PHP7 destekli bir WordPress sitesi oluşturmanız ve bu ilginç yeni özellikleri öğrenmeye başlamanız için size ilham verecektir. Zor değiller, ancak sitenizin performansını iyileştirmek ve WordPress için hazırlanmak istiyorsanız, umarım PHP7 çalışmasıyla uyumlu olmayan özellikleri kucaklamak için geçiş PHP7 dönüşünün bildirimi çok önemlidir.