{"id":808,"date":"2022-09-05T11:03:06","date_gmt":"2022-09-05T11:03:06","guid":{"rendered":"https:\/\/sunucucozumleri.com\/?p=808"},"modified":"2024-01-18T02:05:38","modified_gmt":"2024-01-17T23:05:38","slug":"php-7-4e-giris-performans-ozellikler-neden-php7-4-kullanmaliyiz","status":"publish","type":"post","link":"https:\/\/sunucucozumleri.com\/blog\/php-7-4e-giris-performans-ozellikler-neden-php7-4-kullanmaliyiz\/","title":{"rendered":"PHP 7.4&#8217;e Giri\u015f: Performans, \u00d6zellikler, Neden PHP7.4 Kullanmal\u0131y\u0131z?"},"content":{"rendered":"<p>Merhabalar,<\/p>\n<p>28 Kas\u0131m 2019&#8217;da yay\u0131mlanan bu yeni s\u00fcr\u00fcm art\u0131k t\u00fcm\u00a0<strong>TALIDO<\/strong>\u00a0sunucular\u0131nda kullan\u0131labilmektedir. PHP 7.4 ile Geli\u015ftiriciler i\u00e7in, kod okunabilirli\u011fi, bak\u0131m\u0131 ve kullan\u0131m kolayl\u0131\u011f\u0131nda iyile\u015ftirmeler gelmektedir.. Baz\u0131 yeni \u00f6zelliklere, performans ayarlar\u0131na ve PHP 7.4&#8217;e ge\u00e7i\u015f yapman\u0131z\u0131n di\u011fer nedenlerine bakal\u0131m.<\/p>\n<p><strong>PHP 7.4 Sizin \u0130\u00e7in Ne Anlama Geliyor?<\/strong><\/p>\n<p>PHP, yeni \u00f6zelliklerle dolu en yeni PHP 7.4 g\u00fcncellemesini yay\u0131nlayarak geli\u015fmeye devam ediyor.\u00a0\u00d6nceki PHP 7 s\u00fcr\u00fcmlerinde g\u00f6rd\u00fc\u011f\u00fcm\u00fcz gibi &#8211; performans ve h\u0131z geli\u015fmeye devam ediyor.\u00a0En heyecan verici yeni \u00f6zelliklerden biri\u00a0<strong>\u00f6ny\u00fckleme<\/strong>\u00a0.\u00a0Yayg\u0131n kod sat\u0131rlar\u0131n\u0131n sadele\u015ftirilmesi sayesinde komut dosyas\u0131n\u0131n y\u00fcr\u00fct\u00fclmesini h\u0131zland\u0131rmaya yard\u0131mc\u0131 olur ve daha h\u0131zl\u0131 ve daha temiz kodlara sahip olma \u00f6zelli\u011fini sunar.<\/p>\n<p>PHP&#8217;den sorumlu iyi insanlar dinleyicilerin g\u00f6r\u00fc\u015f ve taleplerini duymu\u015f ve bunlar\u0131 tam olarak cevaplam\u0131\u015flard\u0131r.\u00a0O zamandan beri, kodlar\u0131 daha sezgisel ve programlama dilleri aras\u0131nda ge\u00e7i\u015f yapmak daha kolay olacak \u015fekilde s\u00fcrekli de\u011fi\u015ftiriyorlar.<\/p>\n<p>PHP, t\u00fcm web sitelerinin% 78,9&#8217;undan fazlas\u0131nda kullan\u0131lmaktad\u0131r.\u00a0<strong>W3techs<\/strong>&#8216;e\u00a0g\u00f6re\u00a0, PHP kullanan en pop\u00fcler siteler\u00a0birka\u00e7\u0131n\u0131 belirtmek\u00a0i\u00e7in Wikipedia, Pinterest ve Facebook&#8217;tur.<\/p>\n<p>\u00d6zellikle PHP \u00e7al\u0131\u015ft\u0131ran ve PHP 5 ve 7&#8217;yi kar\u015f\u0131la\u015ft\u0131ran WordPress sitelerine bakarsak, php i\u015flem s\u00fcrecinde h\u0131zl\u0131 bir art\u0131\u015f g\u00f6rebiliriz.\u00a0<strong>WordPress<\/strong> destekli web siteleri kesinlikle en son PHP s\u00fcr\u00fcm\u00fcn\u00fc kullanarak en fazla kazanc\u0131 elde eder.\u00a0TALIDO kullan\u0131c\u0131lar\u0131 tek bir t\u0131klamayla WordPress sitelerini PHP7.4&#8217;e y\u00fckseltebilirler.<\/p>\n<p>Bu istatisti\u011fi g\u00f6r\u00fcyor musunuz? Bu grafik aktif olarak PHP kullanan web siteleri hakk\u0131nda baz\u0131 ger\u00e7ekleri g\u00f6stermektedir.<br \/>\n39191714 canl\u0131 ve aktif web sitesindeki bu grafik dikkatinizi \u00e7ekmek i\u00e7in yeterli oldu\u011funu d\u00fc\u015f\u00fcnmekteyiz.<br \/>\n\u015eu anda ka\u00e7 tanesi PHP kullan\u0131yor? Ayr\u0131ca PHP 7.4, geli\u015ftirilmi\u015f performans ve di\u011fer ya\u015fam kalitesi iyile\u015ftirmeleriyle PHP 7.3&#8217;ten daha iyi testler yap\u0131yor.<br \/>\nA\u015fa\u011f\u0131daki grafik , PHP&#8217;nin yeni ve eski s\u00fcr\u00fcmlerindeki genel kar\u015f\u0131la\u015ft\u0131rma testini g\u00f6stermektedir .<br \/>\nTest edilen kriterlerden baz\u0131lar\u0131, di\u011ferlerinin yan\u0131 s\u0131ra kullan\u0131m kolayl\u0131\u011f\u0131, h\u0131z ve performanst\u0131.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Makale \u0130\u00e7eri\u011fi<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"\u0130\u00e7indekiler Tablosunu A\u00e7\/Kapat\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-7-4e-giris-performans-ozellikler-neden-php7-4-kullanmaliyiz\/#PHP_74teki_Yenilikler_Nelerdir\" >PHP 7.4&#8217;teki Yenilikler Nelerdir?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-7-4e-giris-performans-ozellikler-neden-php7-4-kullanmaliyiz\/#Onceden_yukleme\" >\u00d6nceden y\u00fckleme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-7-4e-giris-performans-ozellikler-neden-php7-4-kullanmaliyiz\/#Dizi_Ifadelerinde_Forma_Operatoru\" >Dizi \u0130fadelerinde Forma Operat\u00f6r\u00fc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-7-4e-giris-performans-ozellikler-neden-php7-4-kullanmaliyiz\/#Zayif_Referanslar\" >Zay\u0131f Referanslar<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-7-4e-giris-performans-ozellikler-neden-php7-4-kullanmaliyiz\/#Kontravaryant_Parametreler_ve_Kovaryant_Donusler\" >Kontravaryant Parametreler ve Kovaryant D\u00f6n\u00fc\u015fler<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-7-4e-giris-performans-ozellikler-neden-php7-4-kullanmaliyiz\/#amortismanlar\" >amortismanlar<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-7-4e-giris-performans-ozellikler-neden-php7-4-kullanmaliyiz\/#Birlestirme_Operatorunun_Onceligini_Degistirme\" >Birle\u015ftirme Operat\u00f6r\u00fcn\u00fcn \u00d6nceli\u011fini De\u011fi\u015ftirme<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-7-4e-giris-performans-ozellikler-neden-php7-4-kullanmaliyiz\/#Sol_Iliskisel_Uclu_Operator\" >Sol \u0130li\u015fkisel \u00dc\u00e7l\u00fc Operat\u00f6r<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/sunucucozumleri.com\/blog\/php-7-4e-giris-performans-ozellikler-neden-php7-4-kullanmaliyiz\/#Sonuc\" >Sonu\u00e7<\/a><\/li><\/ul><\/nav><\/div>\n<h2 id=\"whats-new-in-php-7-4\"><span class=\"ez-toc-section\" id=\"PHP_74teki_Yenilikler_Nelerdir\"><\/span>PHP 7.4&#8217;teki Yenilikler Nelerdir?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>2016&#8217;dan beri PHP7 y\u0131ll\u0131k g\u00fcncellemeleri hatas\u0131z olarak yay\u0131nlamaktad\u0131r.\u00a0Her y\u0131l yeni \u00f6zellikler, eklemeler ve dili web sitelerinde \u00e7al\u0131\u015ft\u0131ranlar i\u00e7in daha g\u00fcvenilir ve kullan\u0131c\u0131 dostu hale getiren daha temiz kod yazma olana\u011f\u0131 sunuyorlar.<\/p>\n<p>PHP 7.4 eklenmesi ile yap\u0131lan baz\u0131 de\u011fi\u015fikliklere daha yak\u0131ndan bakal\u0131m.\u00a0Tam liste i\u00e7in de\u011fi\u015fiklik kay\u0131tlar\u0131na\u00a0<a href=\"https:\/\/www.php.net\/manual\/en\/migration74.php\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" data-wpel-link=\"external\">buradan<\/a>\u00a0g\u00f6z at\u0131n\u00a0.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Onceden_yukleme\"><\/span>\u00d6nceden y\u00fckleme<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Kod hakk\u0131nda konu\u015fal\u0131m.\u00a0Bir \u00e7er\u00e7eve veya kitapl\u0131klar kullan\u0131l\u0131rken, dosyalar\u0131 her istek \u00fczerine y\u00fcklenmeli ve ba\u011flanmal\u0131d\u0131r.\u00a0\u00d6n y\u00fckleme, \u00e7er\u00e7eveleri ve kitapl\u0131klar\u0131 OPCache&#8217;ye y\u00fckleyebilece\u011finiz zamand\u0131r.\u00a0Sunucunun PHP dosyalar\u0131n\u0131 y\u00fcklemesine ve ba\u015flatma s\u0131ras\u0131nda bunlar\u0131 belle\u011fe kaydetmesine ve gelecekteki istekler i\u00e7in kullan\u0131labilir olmas\u0131na izin verir.\u00a0\u0130\u015flerin \u00e7abuk olmas\u0131n\u0131 sa\u011flay\u0131n!<\/p>\n<p>\u00d6ny\u00fckleme belirli bir\u00a0<strong>php.ini<\/strong>\u00a0y\u00f6nergesi\u00a0taraf\u0131ndan \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r\u00a0:\u00a0<strong>opache.preload.Bu<\/strong>\u00a0, PHP komut dosyas\u0131 derleyicisine sahiptir ve <a href=\"https:\/\/sunucucozumleri.com\/blog\/frontpage\/\">sunucu<\/a> ba\u015flat\u0131ld\u0131\u011f\u0131nda\u00a0<strong>y\u00fcr\u00fct\u00fcl\u00fcr<\/strong>\u00a0.\u00a0Daha fazla dosyay\u0131 \u00f6nceden y\u00fcklemek ve bunlar\u0131 dahil etmeyi veya derlemeyi se\u00e7ebilir.<\/p>\n<p>Ancak, bu \u00f6nceden y\u00fcklenmi\u015f dosyalar\u0131n kayna\u011f\u0131 de\u011fi\u015ftirilirse sunucunun yeniden ba\u015flat\u0131lmas\u0131 gerekir.\u00a0\u00d6nceden y\u00fcklenmi\u015f dosyalar da OPCache belle\u011finde sonsuza kadar \u00f6nbellekte kal\u0131r.<\/p>\n<p>Ancak, \u00f6nceden y\u00fcklenmi\u015f bu dosyalar, tekrar kullanman\u0131z gerekti\u011finde gelecekteki t\u00fcm istekler i\u00e7in kullan\u0131labilir olmaya devam edecektir.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Dizi_Ifadelerinde_Forma_Operatoru\"><\/span>Dizi \u0130fadelerinde Forma Operat\u00f6r\u00fc<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>PHP 5.6 piyasaya s\u00fcr\u00fcld\u00fc\u011f\u00fcnde, PHP arg\u00fcman paketini a\u00e7ma (yay\u0131lma operat\u00f6r\u00fc) \u00f6zelli\u011fini desteklemeye ba\u015flad\u0131, ancak \u015fimdi 7.4 ile bu \u00f6zelli\u011fi bir dizi ifadesiyle kullanabiliyoruz.\u00a0Ba\u011f\u0131ms\u0131z de\u011fi\u015fken a\u00e7ma, dizileri ve Gezinebilirleri ba\u011f\u0131ms\u0131z de\u011fi\u015fken listelerine a\u00e7mak i\u00e7in kullan\u0131lan bir s\u00f6zdizimidir.\u00a0Ve bunu yapabilmek i\u00e7in sadece\u2026 (3 nokta).<\/p>\n<p>Bu \u00f6rne\u011fe bakal\u0131m:<\/p>\n<pre class=\"language-markup\"><code>$animals = ['dog', 'cat'];\r\n$animalkingdom = ['lion', 'elephant', ...$animals, 'giraffe'];\r\n\/\/ [\u2018lion\u2019, \u2018elephant\u2019, \u2018dog\u2019, \u2018cat\u2019, \u2018giraffe\u2019];<\/code><\/pre>\n<p>\u015eimdi bir diziyi ba\u015fka bir dizide istedi\u011fimiz her yerden, sadece Spread Operator s\u00f6zdizimini kullanarak geni\u015fletebiliriz.<\/p>\n<p>Daha uzun bir \u00f6rnek:<\/p>\n<pre class=\"language-markup\"><code>$num1 = [1, 2, 3];\r\n$num2 = [...$num1]; \/\/ [1, 2, 3]\r\n$num3 = [0, ...$num1]; \/\/ [0, 1, 2, 3]\r\n$num4 = array(...$num1, ...$num2, 111); \/\/ [1, 2, 3, 1, 2, 3, 111]\r\n$num5 = [...$num1, ...$num1]; \/\/ [1, 2, 3, 1, 2, 3]<\/code><\/pre>\n<p>Sadece bu de\u011fil, ayn\u0131 zamanda bir i\u015flevde de kullanabilirsiniz.\u00a0Bu \u00f6rne\u011fi inceleyin:<\/p>\n<pre class=\"language-markup\"><code>function getNum() {\r\n  return ['a', 'b'];\r\n}\r\n$num6 = [...getNum(), 'c']; \/\/ ['a', 'b', 'c']\r\n \r\n$num7 = [...new NumIterator(['a', 'b', 'c'])]; \/\/ ['a', 'b', 'c']\r\n \r\nfunction arrGen() {\r\n    for($i = 11; $i &lt; 15; $i++) {\r\n        yield $i;\r\n    }\r\n}\r\n$num8 = [...arrGen()]; \/\/ [11, 12, 13, 14]<\/code><\/pre>\n<p>Ayr\u0131ca, art\u0131k bir i\u015flev taraf\u0131ndan do\u011frudan yeni bir diziye d\u00f6nd\u00fcr\u00fclen dizileri ve jenerat\u00f6rleri a\u00e7abilirsiniz.<\/p>\n<p>&nbsp;<\/p>\n<p>Bir kod \u00f6rne\u011fi \u015f\u00f6yle g\u00f6r\u00fcnecektir:<\/p>\n<pre class=\"language-markup\"><code>function getAnimals(){\r\n\treturn ['dog', 'cat', 'elephant'];\r\n}\r\n$num1 = [...getAnimals(), 'lion', 'tiger', 'giraffe'];<\/code><\/pre>\n<p>PHP 7.4 Ekran \u00c7\u0131kt\u0131s\u0131<\/p>\n<pre class=\"language-markup\"><code>array(6) {\r\n\t[0]=&gt;\r\n\tstring(3) \"dog\"\r\n\t[1]=&gt;\r\n\tstring(3) \"cat\"\r\n\t[2]=&gt;\r\n\tstring(8) \"elephant\"\r\n\t[3]=&gt;\r\n\tstring(4) \"lion\"\r\n\t[4]=&gt;\r\n\tstring(5) \"tiger\"\r\n\t[5]=&gt;\r\n\tstring(7) \"giraffe\"\r\n}<\/code><\/pre>\n<p>Bu yeni dizi ifadesiyle, forma i\u015fle\u00e7leri 7.3\u00a0<strong>array_merge<\/strong>\u00a0\u00fczerinde \u00e7ok daha iyi performans g\u00f6stermelidir\u00a0.\u00a0Bunun nedeni, dizi operat\u00f6r\u00fc bir\u00a0<strong>i\u015flevken<\/strong>\u00a0yayma i\u015flecinin bir dil yap\u0131s\u0131\u00a0olmas\u0131d\u0131r.\u00a0Ayr\u0131ca forma operat\u00f6r\u00fc,\u00a0gezilebilir ve\u00a0<strong>array_merge<\/strong>\u00a0uygulayan\u00a0<strong>nesneleri<\/strong>\u00a0destekledi\u011finden yaln\u0131zca dizileri destekler.<\/p>\n<p>Dikkat edilmesi gereken baz\u0131 \u00f6nemli noktalar, dize anahtarlar\u0131 desteklenmedi\u011fi i\u00e7in yaln\u0131zca dizine al\u0131nm\u0131\u015f dizileri kullanabilirsiniz.\u00a0Kullan\u0131l\u0131rsa, bir dize anahtar\u0131 bulundu\u011funda ekranda kurtar\u0131labilir bir hata at\u0131l\u0131r.<\/p>\n<p>7.4&#8217;\u00fcn bir ba\u015fka muhte\u015fem yarar\u0131 da array_merge \u00f6\u011fesinin kald\u0131r\u0131lmas\u0131d\u0131r.\u00a0Korkun\u00e7 endeks de\u011fi\u015fimine veda edin!<\/p>\n<p>&nbsp;<\/p>\n<p>\u00d6rne\u011fin, a\u015fa\u011f\u0131daki bu uzun sarg\u0131l\u0131 dizi birle\u015ftirmesine bakal\u0131m:<\/p>\n<pre class=\"language-markup\"><code>$array = [\u2018banana, \u2018orange\u2019];\r\n$array[2] = \u2018orange\u2019;\r\n$array[1] = \u2018apple\u2019; \/\/shifting\r\nvar_dump($array); \r\n\/\/ prints \r\narray(3) {\r\n\t[0]=&gt;\r\n\tstring(6) \"banana\"\r\n\t[1]=&gt;\r\n\tstring(5) \"apple\"\r\n\t[2]=&gt;\r\n\tstring(6) \"orange\"<\/code><\/pre>\n<p>7.4&#8217;\u00fcn di\u011fer bir yarar\u0131 da jenerat\u00f6r fonksiyonunu kullanmakt\u0131r.\u00a0Bir\u00a0<a href=\"https:\/\/www.php.net\/manual\/en\/language.generators.syntax.php\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" data-wpel-link=\"external\">jenerat\u00f6r i\u015flevi<\/a>\u00a0, normal bir i\u015flev gibi \u00e7al\u0131\u015f\u0131r, bir de\u011fer d\u00f6nd\u00fcrmek yerine, bir jenerat\u00f6r i\u015flevi gerekti\u011fi kadar de\u011fer verir.<\/p>\n<p>A\u015fa\u011f\u0131daki \u00f6rnek kodu inceleyin:<\/p>\n<pre class=\"language-markup\"><code>function generator() {\r\n\tfor ($i = 3; $i &lt;= 5; $i++) {\r\n\t\tyield $i;\r\n\t}\r\n}\r\n$num1 = [0, 1, 2, ...generator()];<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Zayif_Referanslar\"><\/span>Zay\u0131f Referanslar<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u015eimdi PHP 7.4,\u00a0<strong>WeakRed<\/strong>\u00a0s\u0131n\u0131f\u0131\u00a0veya\u00a0<strong>Weakref<\/strong>\u00a0uzant\u0131s\u0131yla\u00a0kar\u0131\u015ft\u0131r\u0131lmamas\u0131 gereken bir WeakReference s\u0131n\u0131f\u0131na sahiptir\u00a0.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>WeakReferences<\/strong>\u00a0, programc\u0131n\u0131n bir nesneye ba\u015fvuru g\u00f6ndermesini sa\u011flar.\u00a0Bu yararl\u0131d\u0131r \u00e7\u00fcnk\u00fc nesnenin yok edilmesini engellemez.\u00a0\u00d6nbellek benzeri yap\u0131lar\u0131n uygulanmas\u0131nda yard\u0131mc\u0131 olurlar.<\/p>\n<pre class=\"language-markup\"><code>WeakReference {\r\n\/* Methods *\/\r\npublic __construct ( void )\r\npublic static create ( object $referent ) : WeakReference\r\npublic get ( void ) : ?object\r\n}<\/code><\/pre>\n<h3><span class=\"ez-toc-section\" id=\"Kontravaryant_Parametreler_ve_Kovaryant_Donusler\"><\/span>Kontravaryant Parametreler ve Kovaryant D\u00f6n\u00fc\u015fler<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u015eu anda PHP \u00e7o\u011funlukla de\u011fi\u015fmez parametre t\u00fcrlerini ve d\u00f6n\u00fc\u015f t\u00fcrlerini kullanmaktad\u0131r.\u00a0Yani, bir y\u00f6ntemin X parametresi veya d\u00f6n\u00fc\u015f t\u00fcr\u00fc varsa, alt t\u00fcr parametresi veya d\u00f6n\u00fc\u015f t\u00fcr\u00fc de\u00a0<strong>X<\/strong>\u00a0t\u00fcr\u00fc olmal\u0131d\u0131r\u00a0.<\/p>\n<p>\u015eimdi, PHP 7.4\u00a0ile parametre ve d\u00f6n\u00fc\u015f t\u00fcrlerinde\u00a0<strong>kovaryant<\/strong>\u00a0(spesifikten\u00a0<strong>jenerike<\/strong>\u00a0s\u0131ral\u0131) ve\u00a0<strong>kontravaryant<\/strong>\u00a0(s\u0131ray\u0131 tersine \u00e7evirmeye\u00a0)\u00a0izin vermeyi \u00f6nerir\u00a0.<\/p>\n<p>\u0130\u015fte her ikisine de bir \u00f6rnek:<\/p>\n<p>&nbsp;<\/p>\n<p>Kovaryant d\u00f6n\u00fc\u015f tipi \u00f6rne\u011fi:<\/p>\n<pre class=\"language-markup\"><code>interface Factory {\r\n\tfunction make(): object;\r\n}\r\nclass UserFactory implements Factory {\r\n\tfunction make(): User;\r\n}<\/code><\/pre>\n<p>Kontravaryant parametre tipi \u00f6rne\u011fi:<\/p>\n<pre class=\"language-markup\"><code>interface Concatable {\r\n\tfunction concat(Iterator $input); \r\n}\r\nclass Collection implements Concatable {\r\n\t\/\/ accepts all iterables, not just Iterator\r\n\tfunction concat(iterable $input) {\/* . . . *\/}\r\n}<\/code><\/pre>\n<h2 id=\"deprecations\"><span class=\"ez-toc-section\" id=\"amortismanlar\"><\/span>amortismanlar<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>7.4 ile birle\u015fmeyle ilgili bir\u00e7ok itiraz var.\u00a0A\u015fa\u011f\u0131daki liste, kullan\u0131mdan kald\u0131rmay\u0131 hedefleyen i\u015flevlere k\u0131sa bir genel bak\u0131\u015f niteli\u011findedir.\u00a0<a href=\"https:\/\/wiki.php.net\/rfc\/deprecations_php_7_4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" data-wpel-link=\"external\">Burada<\/a>\u00a0daha ayr\u0131nt\u0131l\u0131 bir a\u00e7\u0131klama\u00a0<a href=\"https:\/\/wiki.php.net\/rfc\/deprecations_php_7_4\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" data-wpel-link=\"external\">bulabilirsiniz<\/a>\u00a0:<\/p>\n<ul>\n<li><strong>ger\u00e7ek<\/strong>\u00a0tip<\/li>\n<li>Sihirli miras al\u0131nt\u0131lar\u0131<\/li>\n<li><strong>array_key_exists ()<\/strong>\u00a0nesnelerle<\/li>\n<li><strong>FILTER_SANITIZE_MAGIC_QUOTES<\/strong>\u00a0filtre<\/li>\n<li>Yans\u0131ma\u00a0<strong>d\u0131\u015fa aktarma ()<\/strong>\u00a0y\u00f6ntemleri<\/li>\n<li>3. ba\u011f\u0131ms\u0131z de\u011fi\u015fken olarak kodlama ile\u00a0<strong>mb_strrpos ()<\/strong><\/li>\n<li><strong>implode ()<\/strong>\u00a0parametre sipari\u015f kar\u0131\u015f\u0131m\u0131<\/li>\n<li>Unbinding\u00a0<strong>$ bu<\/strong>\u00a0statik olmayan kapaklardan<\/li>\n<li><strong>hebrevc ()<\/strong>\u00a0i\u015flevi<\/li>\n<li><strong>convert_cyr_string ()<\/strong>\u00a0i\u015flevi<\/li>\n<li><strong>money_format ()<\/strong>\u00a0i\u015flevi<\/li>\n<li><strong>ezmlm_hash ()<\/strong>\u00a0i\u015flevi<\/li>\n<li><strong>restore_include_path ()<\/strong>\u00a0i\u015flevi<\/li>\n<li><strong>allow_url_include<\/strong>\u00a0ini directiv<\/li>\n<\/ul>\n<p>Dikkat edilmesi gereken baz\u0131 \u00f6nemli noktalar a\u015fa\u011f\u0131daki iki a\u015famal\u0131 kullan\u0131mdan kald\u0131rmalard\u0131r.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Birlestirme_Operatorunun_Onceligini_Degistirme\"><\/span>Birle\u015ftirme Operat\u00f6r\u00fcn\u00fcn \u00d6nceli\u011fini De\u011fi\u015ftirme<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u015eu anda &#8216;.&#8217;, &#8216;+&#8217; Ve &#8216;-&#8216; operat\u00f6rlerinin \u00f6nceli\u011fi e\u015fittir.\u00a0Bu operat\u00f6rlerin herhangi bir kombinasyonu basit\u00e7e soldan sa\u011fa \u00e7\u00f6z\u00fclecektir.<\/p>\n<p>&nbsp;<\/p>\n<p>\u015eimdi PHP 7.3&#8217;teki bu koda bakal\u0131m:<\/p>\n<pre class=\"language-markup\"><code>echo \"sum: \" . $a + $b; \r\n\/\/ would be evaluated left-to-right\r\necho (\"sum: \" . $a) + $b;\r\n\/\/ could also look like this<\/code><\/pre>\n<p>PHP 7.4 ile, &#8216;+&#8217; ve &#8216;-&#8216; &#8216;.&#8217;\u00a0dolay\u0131s\u0131yla toplama ve \u00e7\u0131karma i\u015flemleri daima dizeden \u00f6nce yap\u0131l\u0131r.\u00a0Bu \u015fu \u015fekilde g\u00f6r\u00fcnecektir:<\/p>\n<pre class=\"language-markup\"><code>echo \"sum: \" . $a + $b; \r\n\/\/ would be executed as if the code were as follows.\r\necho \"sum :\" . ($a + $b);<\/code><\/pre>\n<p>Bu iki a\u015famal\u0131 teklif, daha az hataya e\u011filimli ve daha i\u00e7g\u00fcd\u00fcsel olmay\u0131 ama\u00e7lamaktad\u0131r.\u00a0PHP 7.4 \u015fu anda ilk a\u015famada parantezsiz &#8216;+&#8217;, &#8216;-&#8216; ve &#8216;ifadelerinin kullan\u0131mdan kald\u0131r\u0131ld\u0131\u011f\u0131na dair bildirimde bulunuyor.\u00a0PHP 8&#8217;de nihai oy \/ de\u011fi\u015fiklik beklenirken.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Sol_Iliskisel_Uclu_Operator\"><\/span>Sol \u0130li\u015fkisel \u00dc\u00e7l\u00fc Operat\u00f6r<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Di\u011fer bir\u00e7ok dilden farkl\u0131 olarak, PHP&#8217;deki \u00fc\u00e7l\u00fc operat\u00f6r sa\u011f ili\u015fkilendiriciden ziyade sol ili\u015fkiseldir.\u00a0Sadece nadir olmakla kalmay\u0131p, farkl\u0131 diller aras\u0131nda ge\u00e7i\u015f yapan programc\u0131lar i\u00e7in de kafa kar\u0131\u015ft\u0131r\u0131c\u0131d\u0131r.\u00a0PHP 7.4 sol \u00e7a\u011fr\u0131\u015f\u0131ml\u0131\u011f\u0131 kald\u0131rmay\u0131 \u00f6nerir ve bunun yerine parantez kullan\u0131lmas\u0131n\u0131 gerektirir.<\/p>\n<p>A\u015fa\u011f\u0131daki koda bir g\u00f6z atal\u0131m:<\/p>\n<pre class=\"language-markup\"><code>return $a == 1 ? 'one'\r\n     : $a == 2 ? 'two'\r\n     : $a == 3 ? 'three'\r\n     : $a == 4 ? 'four'\r\n               : 'other';<\/code><\/pre>\n<p>Di\u011fer bir\u00e7ok dilde \u015fu \u015fekilde yorumlan\u0131r:<\/p>\n<pre class=\"language-markup\"><code>return $a == 1 ? 'one'\r\n     : ($a == 2 ? 'two'\r\n     : ($a == 3 ? 'three'\r\n     : ($a == 4 ? 'four'\r\n               : 'other')))<\/code><\/pre>\n<p>PHP&#8217;deyken bunun yerine \u015f\u00f6yle yorumlan\u0131r:<\/p>\n<pre class=\"language-markup\"><code>return ((($a == 1 ? 'one'\r\n     : $a == 2) ? 'two'\r\n     : $a == 3) ? 'three'\r\n     : $a == 4) ? 'four'\r\n               : 'other';<\/code><\/pre>\n<p>Bu, hatalara yol a\u00e7abilir, \u00e7\u00fcnk\u00fc genellikle ama\u00e7lanan bu de\u011fildir.<\/p>\n<p>PHP 7.4 ayr\u0131 bir iki ad\u0131ml\u0131 teklif yoluyla, kullan\u0131mdan kald\u0131rma uyar\u0131s\u0131 olarak parantezin a\u00e7\u0131k kullan\u0131m\u0131n\u0131 uygulad\u0131 ve umar\u0131m gelecekteki s\u00fcr\u00fcmlerde derleme \u00e7al\u0131\u015fma zaman\u0131 hatas\u0131 ger\u00e7ekle\u015ftirir.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Sonuc\"><\/span>Sonu\u00e7<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Tatillerde tam zaman\u0131nda, PHP 7.4 t\u00fcm PHP geli\u015ftiricileri i\u00e7in yeni \u00f6zellikler ve ya\u015fam kalitesi iyile\u015ftirmeleri getiriyor.<\/p>\n<p>WordPress web siteleri kesinlikle bu geli\u015ftirmelerden faydalanacak ve kullan\u0131c\u0131lar\u0131 PHP 7.4 kullan\u0131rken \u00f6nceki s\u00fcr\u00fcmlerle kar\u015f\u0131la\u015ft\u0131r\u0131ld\u0131\u011f\u0131nda daha h\u0131zl\u0131 y\u00fcr\u00fctme s\u00fcreleri ve daha az bellek kullan\u0131m\u0131 bekleyebilirler.<\/p>\n<p>&nbsp;<\/p>\n<p>Birinci s\u0131n\u0131f \u00f6zellik tipi bildirimleri ve t\u00fcr ipucu, ok birle\u015ftirme i\u015flevleri ve g\u00fcl\u00fcn\u00e7 derecede daha iyi h\u0131z\u0131n eklenmesiyle, 7.4 i\u015f ak\u0131\u015f\u0131n\u0131z\u0131n h\u0131z\u0131n\u0131 ve kalitesini kesinlikle art\u0131racakt\u0131r.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Merhabalar, 28 Kas\u0131m 2019&#8217;da yay\u0131mlanan bu yeni s\u00fcr\u00fcm art\u0131k t\u00fcm\u00a0TALIDO\u00a0sunucular\u0131nda kullan\u0131labilmektedir. PHP 7.4 ile Geli\u015ftiriciler i\u00e7in, kod okunabilirli\u011fi, bak\u0131m\u0131 ve kullan\u0131m kolayl\u0131\u011f\u0131nda iyile\u015ftirmeler gelmektedir.. Baz\u0131 yeni \u00f6zelliklere, performans ayarlar\u0131na ve PHP 7.4&#8217;e ge\u00e7i\u015f yapman\u0131z\u0131n di\u011fer nedenlerine bakal\u0131m. PHP 7.4 Sizin \u0130\u00e7in Ne Anlama Geliyor? PHP, yeni \u00f6zelliklerle dolu en yeni PHP 7.4 g\u00fcncellemesini yay\u0131nlayarak geli\u015fmeye &hellip;<\/p>\n","protected":false},"author":1,"featured_media":1456,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-808","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux"],"acf":[],"_links":{"self":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/posts\/808","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/comments?post=808"}],"version-history":[{"count":0,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/posts\/808\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/media\/1456"}],"wp:attachment":[{"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/media?parent=808"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/categories?post=808"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sunucucozumleri.com\/blog\/wp-json\/wp\/v2\/tags?post=808"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}