PHP fonksiyonları / yöntemlerini oluştururken en iyi uygulama olan, dizileri veya bireysel değişkenler kullanabilirim?

5 Cevap php

O yüzden böyle bir işlevi oluşturmak için 'kötü uygulama' olarak kabul edilir:

// $arr_member_fields['first_name'] = $_POST['first_name'];
// $arr_member_fields['last_name']  = $_POST['first_name'];
// $arr_member_fields['email']      = $_POST['email'];
// $arr_member_fields['dob']        = $_POST['dob'];
// $arr_member_fields['gender']     = $_POST['gender'];

function update_member($int_member_id $arr_member_fields)
{
    //some code
}

Ya da bir hayır dizi ile bir işlev oluşturmak ve sadece yerine değişkenleri kullanmak gerekir - şöyle:

function update_member($int_member_id, $str_first_name, $str_last_name, str_email, $str_dob, $chr_gender)
{
    //some code
}

Ben ilk yöntem (dizi ile bir) tercih etmelerinin nedeni hep veritabanı ekleme / amaçlı güncellenmesi için dizi döngü seçeneği olması.

Bu diğer halklar girdileri çok merak.

5 Cevap

Işlevine bağlıdır. Bir fonksiyon yazarken yeterince çoğu durumda çekeceği burada hiç iyi uygulama bulunmamaktadır. Ne argümanları döngü gerek yoksa?

Bu durumda dizi geçirmeden kapalı iyi gibi görünüyor.

Bu benim veri tutmak için bir yapı düşünün bir durumdur. Bu şekilde ben bir yöntemleri yapı veya yapının bir dizi iletebilirsiniz ya da yapının tek tek öğeleri erişebilirsiniz.

Ben gitmek istedim, tabii ki daha ben yerine bir yapının bir sınıf yapmıştı. Sonra böylece yöntemlerinin yanı sıra verileri, belirleyiciler, doğrulama ile alıcılar, ve olabilir.

Bu gibi şeyler sonuçta performans ve okunabilirliğe etkileri inmesi. Dizisi geçirerek son derece kullanışlı olsa da, aynı zamanda zor (eğer 6 ay sonra geri geliyorlar, hatta sizin için ya) başkasının kodu okumak için takip yapar. Dizi büyük bir dosya ya da tamamen başka bir dosyada başka bir yerde tanımlanmış ise, bu özellikle doğrudur.

Günün sonunda gerçekten aşağı ilk etapta kodunuzu optimize etmek için çalışıyoruz neden geliyor. Bu performans için mi, ya da okuma / anlama kolaylaştırmak için?

Okunabilir olması için ise, anlamak kolay görünüyor yaklaşımını seçerler. Eğer geri dönün ve şimdi gelen bir şey ay çimdik zorunda olduğunda kendinize teşekkür edeceksiniz.

Bu performans için ise, aslında performansını artırmak ve sadece optimizasyon uğruna bir şeyler optimize olmadığını gerekir emin olun. Daha sık değil, bir varolmayan performance sorunu çözmek için bir çaba, bir çok gerçek readability problem oluşturabilir edeceğiz.

IDE o dosyaya gitmek zorunda kalmadan almalı hangi parametreler söyleyebilirim çünkü ben ikinci yöntemi ile gitmek istiyorum. Bu küçük bir proje için şimdi bir dizi kullanmak için ok görünebilir, ancak proje arttıkça daha da büyük olasılıkla daha sonra bir sorun haline. Ayrıca bunu kullanmaya çalışıyoruz sonra kendinize sorarak sizi kurtaracak "Ben ilk name_ kullanabilir veya first_ adı mı?" Bu alanlar zaten tek bir açıklamada güncellenmiş olacak tek bir tablo olacak bir şey gibi görünüyorsun, bu yüzden dizinin üzerinde döngü istediğiniz herhangi bir sebep görmüyorum.

Ben dizi ile parametreleri geçirerek genellikle kötü bir fikir olduğunu düşünüyorum. Parametre listeleri muhtemelen kod en iyi şekilde tasarlanmış bir işarettir onlar bir dizi olarak geçirilen haklı o kadar uzun ise.

Dizideki parametreleri geçirerek phpDocumentor gibi bir şey kullanarak belgeye daha zordur ve aynı zamanda bir IDE kod tamamlama tarafından yakalandı olmayacaktır. Geçen parametreler explicity ayrıca tip ipuçlarının izin verir ve kod okuyucuya daha şeffaf.

Eğer bir fonksiyon argüman olarak işlenecek öğeler bir dizi geçiyoruz Açıkçası eğer o zaman bir dizi olarak geçmek mantıklı.