"Public static"

6 Cevap php

PHP fonksiyon bildirimi anahtar kelimeler hakkında küçük bir nokta: Eğer statik olan bir sınıf yöntemi var ise, static anahtar kelime (public, {[(önce veya görünürlüğü anahtar sonra gelmelidir 2)]}, private)? Tüm yöntemleri, statik varsayarsak veya başka bir görüş anahtar kelime var, o zaman function anahtar kelime için aynı yerde göreceli olarak kalmasını görünürlük anahtar isterdim:

public function foo() {}

public function bar() {}

protected function baz() {}

private function quux() {}

Şimdi bir çift statik iddia:

public function foo() {}

static public function bar() {}

protected function baz() {}

static private function quux() {}

Bir yöntem statik Ayrıca, eğer o bile görünürlük anahtar kelime yok daha yöntemin ne tür bir etkisi daha vardır, çünkü görülen first şey olmak istiyorum.

Açıkçası hiçbir fonksiyonel veya tasarım sonuçları vardır gibi bu, kesinlikle bir okunabilirliği konudur. (Aklıma bu.)

6 Cevap

Languages like Java and C# require that the access modifier come first so Edit: önceki vurdu hattı tamamen yanlıştır. Ne dili bu gereksinimi vardır.


public static

Bana doğru bakıyor. Argümanlar her iki yaklaşım için yapılabilir ve mayın şudur: "statik" demek daha mantıklı yerine erişim değiştirici daha işlevini nitelendirir yana

<access_modifier> static

Bunu "statik" bir anlamı etrafında başka bir yol kullanırsanız daha az açıktır.

Ben bu kesinlikle PHP bir soru olduğunu sanmıyorum, ve küçük değer ne için, ben her zaman ilk görünürlük değiştirici yerleştirme tutarlılığı tercih ettik. Ben daha kolay taramak için bulabilirsiniz.

Dahası için Alexei Tenitski's answer.

I prefer static public since this way 
it is easier to spot [usually rare] static methods in classes.

Tüm yöntemlerin görünürlüğü belirtilen gerekirdi. Yani, biz her yöntemi tanımında somehere bahsettiğim sahip oluyor biliyorum, tek soru "ayar hangisi?" Dir.

Sadece bazı statik - yani, her biri için biz "bir yere tanımı statik anahtar kelimenin bir söz var mı?" Sormalısınız. Yani, bu sorunun cevabı daha belirgin hale getirmek için statik ilk koymak.

Ya da, daha geniş bir kural olarak, ......... ben onları okurken subsconsciously şeye atlamayın yapmayın böylece 'ilk en olağanüstü yönü' koymak eğilimindedir. , O)

Bu testi deneyin.

Çok hızlı bir şekilde ... A sınıfı kaç statik yöntem vardır?

class A {
 public static methodA() {
  }
 protected static methodB() {
  }
 private staticlymethodC() {
  } 
}

ve B sınıfı kaç statik yöntem vardır?

class B {
 public methodA() {
  }
 static protected methodB() {
  }
 static private methodC() {
  } 
}

Ben B sınıfı hızlı bir şekilde anlamak çok daha kolay olduğunu düşünüyorum.

Ben nitelemeler tip var ben kullanmak her dilde ilk görünürlüğünü koydu.

I static public Bu şekilde beri sınıflarında [genellikle nadir] statik yöntemleri spot kolaydır tercih.

Bu kod üzerinde hiçbir etkisi olmadığını size doğru. Bu nedenle kendi tarz gereksinimleri, ya da ne gibi ekibinizin olanlar kadar olduğunu. Onlara danışmak ve bir stil katılıyorum.

Sadece kendiniz için kodlama yapıyorsanız, o zaman kendiniz için seçmelisiniz. Seçimi önemlidir değil, tutarlılık.

Eğer isteyebilir Başka bir soru: Eğer 'kamu' ya kullanmalıyım? Geriye dönük uyumluluk için bir görünürlük değiştirici olmadan bir şey (PHP4 hiçbir bilgi gizleme vardı) varsayılan olarak ortak olduğunu. Eğer kamu eğer kamuoyunu yazmaya rahatsız mıyım? Yine kişisel bir seçimdir: güçlü bir argüman ya bir yol yapmak ve seçim iyi olduğunu beni ikna edeceksiniz.

Ben geçmesi ve kendi kodunu temizlemek Şahsen, ben ilk görünürlük değiştirici koymak ve kamu olsa bile bunu belirtmek istiyorum.