PHP 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 | 
|---|---|
| 8.4.0 | Eklendi: Özellik Kancaları için destek. | 
| 8.4.0 | Eklendi: Tembel Nesneler için destek. | 
| 8.1.0 | Eklendi: Sınıf sabitlerinin final olarak tanımlanması artık destekleniyor. Ayrıca, arayüz sabitleri artık öntanımlı olarak geçersiz kılınabiliyor. | 
| 8.0.0 | 
       Eklendi: null olabilen nesne yöntem ve özelliklerine erişim için
       Güvenli Null İşleci
       ?-> desteği.
       | 
     
| 7.4.0 | Değişti: __toString() içinde bir istisna yavrulamak artık mümkün. | 
| 7.4.0 | Eklendi: Sınırlı dönüş türü farklılığı ve bağımsız değişken türü farklılığı desteği. Tam farklılık desteği yalnızca otomatik yükleme kullanılıyorsa kullanılabilir. Tek bir dosyanın içinde yalnızca dönüşümlü olmayan tür gönderimleri mümkündür. | 
| 7.4.0 | Eklendi: Artık sınıf özelliklerini yazmak mümkün. | 
| 7.3.0 | Uyumsuzluk: Traversable bağımsız değişkenlerine int olmayan anahtarlarla ulaşılması artık desteklenmiyor. Böyle bir davranış amaçlanmadığından kaldırıldı. | 
| 7.3.0 | Uyumsuzluk: Önceki sürümlerde statik özellikleri bir gönderim atayarak ayırmak mümkündü. Bu kaldırıldı. | 
| 7.3.0 | 
       Değişti: instanceof
       işleci, sonucun daima false olduğu durumlarda, artık, ilk terim
       olarak değişmezlere izin veriyor.
       | 
     
| 7.2.0 | Kullanımdan kalktı: spl_autoload_register() yararına __autoload() yöntemi kullanımdan kaldırıldı. | 
| 7.2.0 | 
       Değişti: object bir isim olarak sınıf, arayüz
       ve niteliklerin isimlendirilmesinde artık kullanılamıyor.
       | 
     
| 7.2.0 | Değişti: İsim alanları için grup kullanım sözdiziminde arda bir virgül eklenebiliyor. | 
| 7.2.0 | Değişti: Bağımsız değişken türü genişletmesi. Geçersiz kılınmış yöntemlerdeki ve arayüz gerçekleştirimlerindeki bağımsız değişken türleri artık çıkarıldı. | 
| 7.2.0 | Değişti: Soyut bir sınıf başka bir soyut sınıfa genişletildiğinde soyut yöntemler artık geçersiz kılınabiliyor. | 
| 7.1.0 | 
       Değişti: void ve iterable bir
       isim olarak sınıf, arayüz ve niteliklerin isimlendirilmesinde artık
       kullanılamıyor.
       | 
     
| 7.1.0 | Eklendi: Sınıf sabitlerinin görünürlüğünü belirtmek artık mümkün. | 
| 7.0.0 | Kullanımdan kalktı: Statik yöntem çağrıları artık statik bildirilemiyor. | 
| 7.0.0 | Kullanımdan kalktı: PHP 4 tarzı kurucu. Yani, tanımlandıkları sınıfın ismini alan yöntemler. | 
| 7.0.0 | Eklendi: Gruplu use bildirimi: Aynı isim alanından ithal edilmiş sınıf, işlev ve sabitler tek bir use deyimi içinde birlikte gruplanabiliyor. | 
| 7.0.0 | 
       Eklendi: new class üzerinden  anonim sınıf desteği eklendi.
       | 
     
| 7.0.0 | Uyumsuzluk: Traversable olmayan nesneler üzerinden yineleme, artık, dizileri gönderimleri üzerinden yinelemeyle aynı davranış kalıbına sahip. | 
| 7.0.0 | Değişti: 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ı otomatik 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ğişken olmayanların içinde). | 
| 5.3.0 | Eklendi: Statik İç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 string
       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. PHP 5.2.0'dan itibaren, object türünü
       __toString yöntemi olmaksızın
       string türüne dönüştürmek E_RECOVERABLE_ERROR
       seviyesinde bir hatayı tetiklemektedir.
       | 
     
| 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() statik 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. |