NYP Değişiklik Tarihçesi

PHP 5 NYP modelinde yaplan değişiklikler burada sıralanmıştır. Bunlarla ilgili açıklamalar ve diğer bilgiler NYP belgeleri içindedir.

Sürüm: Açıklama
7.0.0 Kullanılan iki niteliğin (uyumlu) özelliklerini tanımlamak artık bir hatayı tetiklemiyor.
5.6.0 Eklendi: __debugInfo() yöntemi.
5.5.0 Eklendi: ::class sihirli sabiti.
5.5.0 Eklendi: İstisnaları işlemek için finally bloğu.
5.4.0 Eklendi: Nitelikler.
5.4.0 Değişti: Eğer bir abstract sınıfı kurucu için bir imza tanımlıyorsa, o imza artık yürürlüğe konuyor.
5.3.3 Değişti: Bir isim alanlı sınıf adının son elemanı ile aynı isimdeki yöntemler artık kurucu olarak ele alınmıyor. Bu değişiklik isim alanlı olmayan sınıfları etkilemez.
5.3.0 Değişti: Prototipte öntanımlı değerlere sahip olan arayüzleri yöntemlerle gerçekleyen sınıfların artık arayüzün öntanımlı değeriyle eşleşmesi gerekmiyor.
5.3.0 Değişti: Sınıflara bir değişken kullanarak başvurmak artık mümkün (örn., echo $classname::constant;). Değişkenin değeri bir anahtar sözcük olmamalıdır (örn., self, parent veya static).
5.3.0 Değişti: Sihirli aşırı yükleme yöntemleri static bildirilirse E_WARNING seviyesinde bir hata oluşur.
5.3.0 Değişti: 5.3.0 öncesinde, __autoload() işlevinde yavrulanan istisnalar catch bloğunda yakalanamaz ve ölümcül hata oluşur. __autoload işlevinde yavrulanmayan istisnalar catch bloğunda tek bir önlemle yakalanabilir. Özel bir istisna yavrulanıyorsa bu özel istisna sınıfı mevcut olmalıdır. __autoload işlevi özel istisna sınıfını özdevinimli yüklemek için ardışık olarak kullanılabilir.
5.3.0 Eklendi: __callStatic yöntemi.
5.3.0 Eklendi: Sınıf const ve özellik tanımları için yorumlu ve yorumsuz metin desteği. Yorumlu değerlerin çift tırnaklı dizgelerin uyduğu kurallara uyması gerektiğini unutmayın (örn, değşken olmayanların içinde).
5.3.0 Eklendi: Duruk İçselleştirim.
5.3.0 Eklendi: __invoke() yöntemi.
5.2.0 Değişti: __toString() yöntemi sadece echo veya print ile doğrudan birleştirilip çağrılabilirdi. Artık, herhangi bir dizge bağlamında (örn, %s seçenekli printf() içinde) çağrılabilir fakat diğer türlerin bağlamlarında (örn, %d seçeneği ile) çağrılamaz. PHP 5.2.0 itibariyle, nesnelerin __toString yöntemi olmaksızın dizgeye dönüştürülmesi E_RECOVERABLE_ERROR seviyesinde bir hataya sebep olur.
5.1.3 Değişti: PHP 5 öcesinde, var kullanımı önerilmezdi ve E_STRICT seviyesinde bir hataya sebep olurdu. Artık, önerilmeme durumu ortadan kalktığından bir hataya sebep olmuyor.
5.1.0 Değişti: __set_state() duruk yöntemi artık var_export() ile ihracedilen sınıflar için çağrılabiliyor.
5.1.0 Eklendi: __isset() ve __unset() yöntemi.