SORU
11 Mayıs 2011, ÇARŞAMBA


En iyi (boş) PHP diziyi başlatmak için bir yol

Bazı diğer diller (AS3 için örnek) orda o başlatılıyor yeni bir dizi daha hızlı yapıldığı gibi bu var foo = [] yerine var foo = new Array() sebep olan nesne oluşturma ve örnekleme. PHP herhangi bir diploma denkliği olup olmadığını merak ediyorum?

class Foo {
    private $arr = array(); // is there another / better way?
}

CEVAP
11 Mayıs 2011, ÇARŞAMBA


İçinde ECMA uygulamaları (örneğin) ActionScript veya JavaScript, Array() yapıcı bir işlevi olduğunu ve [] dizi değişmez dilbilgisi parçasıdır. Hem de bir işlevi çağırmadan yükü ile inatçı olmamak değişmez dilbilgisi ile tamamen farklı şekilde optimize idam edilir.

PHP, diğer taraftan, fonksiyonlar gibi görünebilir dil yapıları vardır ama bu şekilde tedavi değil. Hatta PHP alternatif olarak [] destekleyen 5.4,,, derleyici/çözümleyici gelince, tamamen eşanlamlı oldukları için havai farkı yok.

// Before 5.4, you could only write
$array = array(
    "foo" => "bar",
    "bar" => "foo",
);

// As of PHP 5.4, the following is synonymous with the above
$array = [
    "foo" => "bar",
    "bar" => "foo",
];

Eğer PHP eski sürümleri desteklemek isterseniz, eski sözdizimi kullanın. Ayrıca okunabilirlik ama, uzun süredir JS bir geliştirici olmak için bir sebep yok, ikincisi benim için oldukça doğal görünüyor. Aslında ben ilk PHP öğrenmeye başlamıştı diziler [] kullanarak yeniden çalışılırken bir hata yaptı.

Dil için change Bu aslında ve oy çoğunluğu şu nedenle çekirdek geliştiriciler tarafından karşı nedeniyle teklif reddedildi:

Bu yama çekirdek geliştiricileri hafif çoğunluğa karşı oy kullandı, çünkü kabul edilmeyecektir. Çekirdek geliştirici ve kullanım alanı oyları arasında birikmiş bir anlamı alırsan tam tersini gösteriyor olsa da cadı ya da uzun vadede desteklenen korunur bir yama göndermek için sorumsuzluk olur.

Ancak, kalbin bir değişiklik 5.4, belki de MongoDB gibi popüler veritabanları için destek uygulamaları ECMA sözdizimi kullanan) etkisinde giden varmış gibi görünüyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ABC News (Australia)

    ABC News (Au

    9 HAZİRAN 2008
  • sk8ingis4me

    sk8ingis4me

    16 Mart 2006
  • Theodore Leaf

    Theodore Lea

    29 AĞUSTOS 2006