Sakin harshen shirye-shirye na PHP 7.4

Bayan shekara guda na ci gaba gabatar sakin harshe na shirye-shirye PHP 7.4. Sabon reshe ya ƙunshi jerin sabbin abubuwa, da kuma canje-canje da yawa waɗanda ke karya daidaituwa.

Maɓalli ingantawa a cikin PHP 7.4:

  • Abubuwan da aka Buga - Kaddarorin aji yanzu na iya haɗawa da nau'in sanarwa, misali:

    Mai amfani aji {
    jama'a int $ id;
    jama'a kirtani $name;
    }

  • Taqaitaccen syntax don ma'anar ayyuka "fn (parameter_list) => expr" tare da iyakacin iyaka ta ƙimar. Misali, "fn($x) => $x + $y" yana kwatankwacin "$fn2 = aiki ($ x) amfani ($ y) {dawo $x + $y;}");
  • Ma'aikacin aikin gajeriyar hannu "??=" wanda za'a iya amfani dashi don ayyana ƙimar da aka saba ("a ?? = b" yayi kama da "a = a ?? b", idan "a" an bayyana darajarsa ana adana shi, kuma idan ba a bayyana shi ba. an sanya darajar "b" );
  • iyakance damar kiyaye tsarin gado na nau'ikan a cikin nau'ikan dawowar da aka samu, ko ikon juyar da martabar nau'ikan asali a cikin nau'ikan jayayya da aka samu (hadin kai nau'in dawowa da nau'in jayayya). Ana iya amfani da abubuwan ginawa masu zuwa yanzu a cikin PHP:

    class A {}
    aji B ya tsawaita A {}

    Mai gabatarwa aji {
    Hanyar aikin jama'a(): A {}
    }
    class ChildProducer ya tsawaita Furodusa {
    Hanyar aikin jama'a(): B {}
    }

  • Cire fakitin ma'aikata a cikin tsararraki "…$var", yarda yi musanya abubuwan da ke akwai lokacin da ake ayyana sabon tsararru;

    $ sassa = ['apple', 'pear'];
    $ruits = ['ayaba', 'orange', ...$ sassa, ' kankana'];
    // ['ayaba', 'orange', 'apple', 'pear', 'kankana'];

  • Dama wakilcin gani na manyan lambobi tare da iyakoki a cikin lambobi (1_000_000_00);
  • goyon bayan rauni links, wanda ke ba ka damar riƙe ambaton abu, amma kada ka toshe mai tattara shara daga share abin da ke da alaƙa;
  • Sabon inji Serialization abu (haɗin Serializable da __sleep () / __ farkawa ()), wanda ya maye gurbin Serializable interface, wanda za a yanke;

    // Yana mayar da jeri mai ɗauke da duk jihohin abin;
    aikin jama'a __serialize(): tsararru;

    // Yana dawo da yanayin abu daga tsararru
    aikin jama'a __unserialize(array $data): banza;

  • An ba da izinin jefa keɓantacce daga hanya __toString();
  • Ƙara goyon baya don ƙaddamar da cache lambar abu. Ƙara siga don saiti
    opcache.preload, ta hanyar da za ku iya saka rubutun PHP wanda za a haɗa da aiki lokacin da uwar garken ya fara. Wannan rubutun na iya loda opcode na wasu fayiloli ta hanyar haɗa su kai tsaye ko ta amfani da aikin opcache_compile_file();

  • Ƙara aikin crc32c zuwa tsawo na Hash don ƙididdige ƙididdiga ta amfani da yawan adadin Castagnoli;
  • Ƙara goyon baya ga aikin kalmar sirri_hash () don hanyoyin hashing kalmar sirri argon2i da argin2id, a cikin aiwatar da ɗakin karatu na Sodium, idan an gina PHP ba tare da libargon ba;
  • Ƙara aikin mb_str_split(), mai kama da str_split(), amma yana aiki ba tare da bytes ba amma tare da matsayi na hali a cikin kirtani mai yawan byte;
  • Aikin strip_tags() yanzu yana da ikon wuce tsararru mai sunaye, watau. maimakon strip_tags($str, '') yanzu zaku iya saka strip_tags($str, ['a','p']);
  • proc_open() yana ba da damar jera operands a cikin jeri, maimakon kirtani don gudana, kuma yana ba da juyar da zare da goyan baya ga mai siffanta fayil ɗin banza;

    proc_open (['php', '-r', 'echo "Hello Duniya\n";'], $bayyanai, $pipes);

    // Kamar 2>&1 a cikin harsashi
    proc_open($cmd, [1 => ['bututu', 'w'], 2 => ['redirect', 1]], $pipes);

    // kamar 2>/dev/null ko 2>nul a cikin harsashi
    proc_open ($ cmd, [1 => ['bututu', 'w'], 2 => ['null']], $pipes);

  • Firebird/Interbase, Recode da WDDX kari an cire su daga ainihin rarraba. Wadannan kari yanzu ana rarraba su ta hanyar PECL;
  • Canja wurin zuwa rukuni m fasalulluka irin su masu aiki na ternary ba tare da ƙira ba, samun dama ga abubuwa masu tsattsauran ra'ayi da kirtani ta yin amfani da takalmin gyaran kafa ("$ var{$idx}"), aikin is_real() da yin simintin gaske, ta amfani da kalmar maɓallin iyaye ba tare da ajin iyaye ba, siga allow_url_include saituna. , ta amfani da array_key_exists() akan abubuwa.

    Ayyukan samun_magic_quotes_gpc(), get_magic_quotes_runtime(), da
    hebrevc(), convert_cyr_string (), money_format (), ezmlm_hash (), restore_include_path(), ldap_control_paged_result_response (), ldap_control_paged_result (), ReflectionType :: __toString ().

    An ba da gargaɗi game da amfani da tsohuwar siffa lokacin ƙoƙarin aiwatar da alamomin da ba daidai ba a ayyuka
    base_convert(), bindec(), octdec() da hexdec(), da kuma lokacin da aka tantance tsarin mara kirtani a mb_ereg_replace().

source: budenet.ru

Add a comment