• 15-09-2020, 20:56:45
    #1
    PHP 8.0 ile gelen bazı yeni özellikler olduğu gibi bazı güncellemeler de var. Yeni özelliklerin en başındaysa JIT özelliği geliyor. JIT temel anlamda çevrilen bytecode sisteminin arasına Asembly ekliyor yani kod döngüsü PHP -> Bytecode yerine, PHP -> Bytecode -> Assembly olacak. Aslında baktığınızda okunma alanı uzamış gözüküyor ancak işlevsel düşünürsek işler biraz değişiyor. Normalde PHP kodu Bytecode’a çevrilerek PHP motorunun yorumlayacağı şekle geliyor ama bu döngü sürekli tekrarlanıyor. PHP kodu Bytcecode’a çevrilip ardından da işlemcinin anlayacağı dil olan Assembly’e çevrilince işlem süresi ciddi derecede azalıyor çünkü kaynak kodu tekrar okumasına gerek kalmıyor. Açıklamayı uzatmak yerine aradaki farkı daha kolay anlayabileceğiniz geliştiricinin videosuyla sizi baş başa bırakayım.
    https://www.youtube.com/embed/dWH65pmnsrI

    Ayrıca kullanışlılığı ve true/false çıktısı değişen işlemlerde olacak;
    • Switch case koduna alternatif olarak match kodu eklendi. Aşağıda gördüğünüz 2 kod aynı çıktıyı verecek:
    switch(2){ 
     case 1:  
      $result = "1";  
      break; 
     case 2:  
      $result = "2";  
      break; 
     case 3:  
      $result = "3";  
      break; 
     default:  
      $result = "0";  
      break;
    }
    $result = match(2){
     1 => "1",
     2 => "2",
     3 => "3",
     default => "0"
    };
    • Üçlü karşılaştırma operatörüne parantez zorunluluğu getirilecek:
      Şuanda $sonuc = ifade ? deger1 : deger2 ? deger3 : deger4; olarak kullanılan yapı PHP 8.0 ile daha kolay okunabilmesi için parantezle kullanılması gerekecek. Örneğin $sonuc = ifade = deger1 : (deger2 ? deger3 : deger4); şeklinde.
    • Artı ve eksi operatör öncelikleri değişecek:
      Şuanda $sonuc = '3' . '5' + 7; işlemini yaptığınızda 35 + 7 işleminden 42 sonucunu alırken PHP 8.0 ile bu işlem artık '3' . '12' işleminden 312 sonucunu verecek. (Bilmeyenler için nokta (.) operatörü birleştirme operatörüdür) Yani toplama ve çıkarma işlemleri de soldan sağa okumaya dahil edilmek yerine diğer operatörler gibi öncelikli olacak.
    • Diziler ( Array ) artık negatif değerlerden başlayabilecek. Örneğin $array[-4] = '-4. dizi değeri'; şeklinde kullanılabilecek.
    • strpos metoduna alternatif str_contains metodu eklenecek. Şuanda strpos metoduyla metnin içince aradığımız değer var mı diye baktığımızda yoksa false, varsa int değeri döndürüyor. PHP 8.0 ile gelen str_contains metodu sayesinde daha doğru sonuçlar alacağız çünkü bu metot boolean sonuç döndürecek.
    Bu listede hem yanlış bilgi vermemek hem de çok uzun tutmamak için sadece kendi bilgim olan işlemler için gelen yeniliklerden bahsettim. Tüm yenilikleri takip etmek isterseniz PHP’nin kendi sitesindeki güncellemeler bölümünü takip edebilirsiniz. Bu sayede tüm sürümlerdeki gelen yenilikler hakkında kesin bilgiye ulaşabilirsiniz.



    Kaynak: PHP 8 ile Gelen Yenilikler


    Konuda hatalı bilgi varsa, bilmediğim geniş kapsamlı/önemli bir yenilik varsa konuya yorum olarak belirtirseniz detaylı araştırıp konuyu güncelleyebilirim.
  • 15-09-2020, 20:58:28
    #2
    PHP bitti diyenler gelir şimdi 😂
  • 15-09-2020, 20:59:23
    #3
    celalyesil adlı üyeden alıntı: mesajı görüntüle
    PHP bitti diyenler gelir şimdi 😂
    hocam el alışkanlığım var php güncellendiği sürece kullanmaya devam ederim
  • 15-09-2020, 20:59:42
    #4
    Çok severek kullandığım sağlamda ekmeğini yediğim yegane programlama dili ama artık yavaş yavaş çekilme vakti geldi.
  • 15-09-2020, 21:00:34
    #5
    EvrenOnur adlı üyeden alıntı: mesajı görüntüle
    Çok severek kullandığım sağlamda ekmeğini yediğim yegane programlama dili ama artık yavaş yavaş çekilme vakti geldi.
    neden hocam siteme konuya buyrun tartışalım yakında zaten beyin fırtınası kategorisi eklicem tasarım ayarlamaya çalışıyorum güzel denk geldi o zaman
  • 15-09-2020, 21:02:38
    #6
    Yeğenim pöheçpi biddi yov
  • 15-09-2020, 21:02:43
    #7
    Aeknasd145 adlı üyeden alıntı: mesajı görüntüle
    neden hocam siteme konuya buyrun tartışalım yakında zaten beyin fırtınası kategorisi eklicem tasarım ayarlamaya çalışıyorum güzel denk geldi o zaman
    JavaScript ile uzaktan yakından ilişkim vardi belirli süre (cicim aylari) geçtikten sonra baktim ki benim yaptığım ve çalıştığım projeler için artık JavaScript kullanmam gerektiğini anladım. Özellikle çok beğendiğim laravel kopyası diyebileceğim adonis js gördükten sonra dedim tamam PHP kardeş seni gerekmedikçe kullanmayacağım
  • 15-09-2020, 21:04:18
    #8
    EvrenOnur adlı üyeden alıntı: mesajı görüntüle
    JavaScript ile uzaktan yakından ilişkim belirli süre (cicim aylari) geçtikten sonra baktim ki benim yaptığım ve çalıştığım projeler için artık JavaScript kullanmam gerektiğini anladım. Özellikle çok beğendiğim laravel kopyası diyebileceğim adonis js gördükten sonra dedim tamam PHP kardeş seni gerekmedikçe kullanmayacağım
    bende seni gerekmedikçe kullanmayacağım sözünü js için diyorum php ile başladım bir çok işimi görüyor, js de geneldeya ajax olarak kullanıyorum ya da geolocation özelliği onun dışında çok ufak başlangıç kodları bazen gerekiyor o kadar
  • 15-09-2020, 21:04:48
    #9
    match' te break; kullanilmiyor mu?