Yeni PHP 8 güncellemesi hakkında bilinmesi gereken her şey
PHP 8'in Aralık 2020'de piyasaya sürülmesi planlanıyor. PHP'nin yeni sürümü, kullanıcıdan pek çok beklentiyle geliyor. Pek çok özellik ve geliştirilmiş performans ile desteklenmesi gerekiyor. Değişiklikler PHP'yi daha hızlı ve daha verimli hale getirecek. Özelliklerdeki köklü değişiklikler nedeniyle, kullanıcıların PHP 8'i işlevsel hale getirmek için kodlarında bazı değişiklikler yapmaları gerekebilir.
Yeni özellikleri şunları içerir:
- JIT derleyicisi
- sendika türleri
- nitelikler vb.
Listeye eklenecek daha birçok özellik olacak.
PHP'nin Anlamı
PHP, web geliştirme için kullanılan bir Köprü Metni Ön İşlemcisidir. Kullanımı çok kolaydır. Ve hala son derece profesyonel programcılar tarafından geliştirmek için kullanılıyor. Onu en iyi yapan şey, IMAP, POP3 ve LDAP gibi ana protokolleri desteklemesidir. PHP'nin önceki birçok sürümü bu amaç için kategorik olarak iyiydi. PHP 8 birçok ilginç özellikle birlikte gelir. Bunlardan bazıları aşağıda açıklanmıştır.
PHP 8'deki Yeni Özellikler
Kullanıcılar yeni güncellemeden birçok yeni özellik bekleyebilir. PHP 8'deki değişiklikler, onu daha etkili ve güvenilir hale getirmek için yapılmıştır. Aşağıdaki özellikler ayrıntılı değildir ve PHP 8 çıktığında daha birçok şey görülecektir.
- BİRLİK TÜRLERİ 2.0
- Tam Zamanında Derleyici
- Uyumsuz Yöntem İmzaları
- Negatif İndeksle Başlayan Diziler
- Dahili İşlevler için Sık Tür Hatası
- ifade atmak
- Zayıf Haritalar
- Sondaki Virgüller
- Nesneler üzerinde ::sınıfına izin verme
- Özellikler v2
1. BİRLİK TÜRLERİ 2.0
Birleşim türleri artık farklı türde olabilecek değerler alabilir. Bunlar temel olarak, herhangi birinin kullanılabileceğini söyleyen iki veya daha fazla türün birleşimidir. PHP 8'den önce PHP birleşim türleri yalnızca phpdoc ek açıklamalarında kabul edilebilirdi.
Yeni sürümle, çevrimiçi belgelere güvenmek zorunda değilsiniz. Destek, bir T1|T2| ile birleşim türlerini tanımlayacaktır.
Birlik türleri, birkaç (bazı sınırlamalar) dışında tüm türleri uyarlayacaktır:
VOID türü Union tarafından desteklenemez çünkü bu, işlevin herhangi bir değer döndürmediği anlamına gelir.
- Boş tür, Birlik türü tarafından desteklenebilir.
- Null yapılabilir tür birleşimine de izin verilir. |null veya kullanılarak yazılabilir mi? notasyon.
Örneğin:
|
1
2
3
|
public function foo ( Foo | null $ foo ) : void ;
public function bar ( ? Bar $ bar ) : void ;
|
WPOven – Özel WordPress Barındırma size şunları sağlar –
- ÜCRETSİZ SSD Depolama
- ÜCRETSİZ SSL SERTİFİKASI
- ÜCRETSİZ İş E-postası
- ÜCRETSİZ 100'den fazla premium tema ve eklenti
- ÜCRETSİZ Günlük Site Dışı Yedeklemeler
- ÜCRETSİZ Kötü Amaçlı Yazılım Tarama ve Temizleme
- ÜCRETSİZ WordPress Geliştirme ve Sunucu Desteği
- Adanmış sunucu
Planlarımız 16.61 dolardan başlıyor. Özel VPS, özel kaynaklar, sunucu yığını vb.

2. Tam Zamanında Derleyici
JIIT ile önemli değişiklikler olacak. Ara kodu makine koduna çevirir. Veri kullanımı ve performansı ile büyük değişiklikler getirebilecektir. Değişiklikler henüz açıklanmadı.
PHP 7 Vs HHVM'nin nasıl karşılaştırıldığını daha iyi anlamak için eski kılavuzumuzu okuyun.
3. Uyumsuz Yöntem İmzaları
PHP 8 ile, önceki sürümlerden farklı olarak kod aşağıdaki mesajı isteyecektir:
Önemli hata: C2::method(int $a) bildirimi, 7. satırdaki /path/to/your/test.php içindeki C1::method(array $a) ile uyumlu olmalıdır.
4. Negatif İndeksle Başlayan Diziler
PHP'nin önceki sürümlerinde dizi negatif bir indeks ile başladığında, birçok indeks 0 ile başlardı. Ancak yeni sürümde durum böyle değil. Dizi, negatif İndeks ile başlarken davranışını değiştirme eğilimindedir.
5. Dahili Fonksiyonlar için Sıkça Tip Hatası
İç işlevler duruma bağlı olarak çeşitli şekillerde yanıt verir. Cevaplarda sürekli bir tutarsızlık var. PHP 8 bu yanıtları düzenler. Mesajı şu şekilde gösterecektir:
Önemli hata: Yakalanmayan TypeError: strlen(): Bağımsız değişken #1 ($str) dize türünde olmalıdır, nesne /path/to/your/test.php:4 içinde verilir
Yığın izleme:
|
1
2
3
|
#0 {main}
thrown in / path / to / your / test . php on line 4
|
6. İfadeyi Atın
PHP serisinde, ifadelere izin verilen yerlerde throw ifadesinin kullanılmasına izin verilmez. PHP8, gereken her yerde kullanılmak üzere throw ifadesi tasarlar. Ok işlevlerinde olduğu gibi, boş birleştirme, operatör, üçlü ve Elvis operatörleri vb.
Bu, aşağıdaki örneklerle daha iyi açıklanabilir:
|
1
2
3
|
// $value is non-nullable.
$ value = $ nullableValue ? ? throw new InvalidArgumentException ( ) ;
|
7. Zayıf Haritalar
Anahtarların zayıf bir şekilde referans aldığı bir veri yığınıdır. Bu, artık kullanılması gerekmeyen harita anahtarlarını kaldırmak ve yok etmek amacıyla yapıldı. Yeni güncelleme, bellek sızıntısı ve performans gibi alanları düzeltecek. PHP 8 ile kod aşağıdaki sonuçları gösterecektir:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
object ( WeakMap ) #1 (1) {
[ 0 ] = >
array ( 2 ) {
[ “key” ] = >
object ( stdClass ) #2 (0) {
}
[ “value” ] = >
int ( 42 )
} <
}
|
Kodu kaldırmak istediğinizde, anahtar üzerinde kaldırılacaktır.
8. Sondaki Virgüller
PHP 8 artık işlevler, yöntemler ve kapanışlarla birlikte parametre listesinde sondaki virgülleri veriyor. Aşağıda gösterildiği gibi :
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class Foo {
public function __construct (
string $ x ,
int $ y ,
float $ z , // trailing comma
) {
// do something
}
}
|

9. Nesneler üzerinde ::sınıfına izin verme
Artık bu özellik, nesneler üzerinde get_class() kullanmak yerine nesneler üzerinde ::class kullanmanıza olanak tanır.
Örneğin
|
1
2
3
|
$ foo = new Foo ( ) ;
var_dump ( $ foo : : class ) ;
|
10. Nitelikler v2
Açıklamalar, nesnelerin, öğelerin veya dosyaların vb. özelliklerini tanımlamak için kullanılan meta verilerdir. PHP 8 bunu şu şekilde gösterir:
<<PhpAttribute>>
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
class ExampleAttribute
{
public $ value ;
public function __construct ( $ value )
{
$ this – > value = $ value ;
}
}
|
Dile birkaç yeni işlev daha eklendi:
Dile çeşitli yeni işlevler kazandırır.
- str_contains
- str_starts_with() ve str_ends_with()
- get_debug_type
str_contains
PHP'nin önceki sürümü, geliştiricilere strstr ve strpos sağlamak için kullanılıyordu. Bu iki türle ilgili sorun, her iki seçeneğin de çok ilgi çekici kabul edilmesidir. Kolayca kullanılamaz. PHP 8, dizelerin içinde arama yapmak için yeni bir tür verir
|
1
|
str_contains ( string $haystack , string $needle ) : bool
|
En iyi yanı, kullanımı çok kolaydır. Basitçe aşağıdaki kodları yazabilirsiniz:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$ mystring = ‘Managed WordPress Hosting’ ;
$ findme = ‘WordPress’ ;
if ( str_contains ( $ mystring , $ findme ) ) {
echo “The string has been found” ;
} else {
echo “String not found” ;
}
|
str_starts_with() ve str_ends_with()
İki işlev daha, dize içinde arama yapma fırsatı verir. Seçenekler, verilen dizenin başka bir dizeyle başlayıp bitmediğini kontrol eder.
|
1
2
|
str_starts_with ( string $haystack , string $needle ) : bool
str_ends_with ( string $haystack , string $needle ) : bool
|
Ayrıca, iğne $haystack değerinden daha uzun değilse false yanıtını verebilirler .
get_debug_type
Bu işlev, değişkenin türünü döndürür. Gettype işleviyle aynı şekilde çalışır. Ancak buna ek olarak, sınıf adlarını da çözer.
Önceki sürümler tip kontrolü için iyi değildi. Bu yeni gelişme oldukça faydalıdır.
Yukarıdaki değişiklikler, geçirilmiş bariz değişikliklerdir. Daha birçok değişiklik ve iyileştirme, hangi çalışmaların devam ettiği konusunda beklemede. Önümüzdeki aylarda bu değişiklikler netleşecek. PHP8 ile yapılan bu iyileştirmeler onu çok güvenilir ve verimli hale getiriyor.
ev borcu WordPress sitesi