PHP 7.4 ukukhululwa kolwimi lwenkqubo

Emva konyaka wophuhliso thaca ukukhutshwa kolwimi lwenkqubo PHP 7.4. Isebe elitsha liquka uluhlu lweempawu ezintsha, kunye neenguqu ezininzi eziphula ukuhambelana.

Isitshixo ukuphucula kwi-PHP 7.4:

  • Iinkcazelo Ngeempawu ezichwetheziweyo - iipropathi zeklasi ngoku zinokubandakanya izibhengezo zohlobo, umzekelo:

    Umsebenzisi weklasi {
    uluntu int $id;
    umtya woluntu $igama;
    }

  • Isifinyezo isintaksi sokuchaza imisebenzi “fn(parameter_list) => expr” enomthamo obophelelayo ngexabiso. Umzekelo, “fn($x) => $x + $y” ifana ne-“$fn2 = umsebenzi ($x) sebenzisa ($y) {buyisela i-$x + $y;}”);
  • Umsebenzisi wesabelo esimfutshane "??=" enokusetyenziswa ukuchaza ixabiso elimiselweyo ("a ??= b" iyafana no "a = a ?? b", ukuba "a" ichaziwe ixabiso layo ligciniwe, kwaye ukuba ayichazwanga unikwe ixabiso "b" );
  • Ilinganiselwe ithuba Ukugcina uluhlu lwelifa lweentlobo kwiintlobo zembuyekezo ezifunyenweyo, okanye ukukwazi ukubuyisela umva ulawulo lweentlobo zoqobo kwiintlobo zeengxabano ezifunyenweyo (covariance uhlobo lokubuyisela kunye nohlobo lwempikiswano yokuchasana). Olu lwakhiwo lulandelayo ngoku lunokusetyenziswa kwi-PHP:

    iklasi A {}
    iklasi B yandisa A {}

    Umvelisi weklasi {
    indlela yokusebenza yoluntu(): A {}
    }
    iklasi ChildProducer yandisa uMvelisi {
    indlela yokusebenza yoluntu(): B {}
    }

  • Ukukhutshwa komsebenzisi ngaphakathi koluhlu “…$var”, ukuvumela yenza ukutshintshwa koluhlu olukhoyo xa uchaza uluhlu olutsha;

    Amacandelo e-$ = ['i-apile', 'ipere'];
    $fruits = ['ibhanana', 'iorenji', …$amacandelo, 'ivatala'];
    // ['ibhanana', 'i-orenji', 'iapile', 'ipere', 'ivatala'];

  • Ithuba umelo olubonwayo lwamanani amakhulu anezicandisi ngokwamanani li-literals (1_000_000_00);
  • inkxaso amakhonkco abuthathaka, ekuvumela ukuba ugcine isalathiso kwinto, kodwa ungathinteli umqokeleli wenkunkuma ekucimeni into ehambelana nayo;
  • Elitsha Isixhobo ulandelelwano lwento (indibaniselwano yoSeriyizable kunye __yolala()/__wakeup()), ethathe indawo yojongano olunothotho, oluya kuyekwa;

    // Ibuyisela uluhlu oluqulethe zonke iimeko zento;
    umsebenzi woluntu __serialize(): uluhlu;

    // Ibuyisela imo yento kuluhlu
    umsebenzi kawonke-wonke __unserialize(uluhlu lwedatha ye-$): akukho;

  • Kuvunyelwe ukujula ngaphandle kwendlela __toString();
  • Inkxaso eyongeziweyo yokulayishwa kwangaphambili kwekhowudi ye-cache yento. Iparameter eyongeziweyo yokuseta
    ukulanda, apho unokuchaza umbhalo we-PHP oza kuqulunqwa kwaye uqhutywe xa umncedisi eqala. Le script inokulayisha i-opcode yezinye iifayile ngokubandakanywa kwazo ngokuthe ngqo okanye usebenzisa i-opcache_compile_file() umsebenzi;
  • Umsebenzi wongeziweyo we-crc32c kulwandiso lweHash ukubala i-checksums usebenzisa i-Castagnoli polynomial;
  • Inkxaso eyongeziweyo kwi-password_hash () umsebenzi we-password hashing iindlela i-argon2i kunye ne-argin2id, ekuphunyezweni kwelayibrari ye-Sodium, ukuba i-PHP yakhiwe ngaphandle kwe-libargon;
  • Umsebenzi owongeziweyo mb_str_split(), efana ne-str_split(), kodwa ayisebenzi ngee-bytes kodwa ngezithuba zabalinganiswa kumtya weebhayithi ezininzi;
  • I strip_tags () umsebenzi ngoku unokwazi ukudlula uluhlu olunamagama ethegi, i.e. endaweni ye strip_tags($str, ' ') ngoku ungakhankanya strip_tags($str, ['a', 'p']);
  • proc_open() ivumela ii-operands ukuba zidweliswe kuluhlu, kunokuba umtya osebenzayo, kwaye ibonelela kwakhona ulwalathiso lwentambo kunye nenkxaso ye-null inkcazo yefayile;

    proc_open(['php', '-r', 'echo "Molo World\n";'], $descriptors, $pipes);

    // Njengo 2>&1 kwiqokobhe
    proc_open($cmd, [1 => ['umbhobho', 'w'], 2 => ['redirect', 1]], $imibhobho);

    // ngathi 2>/dev/null okanye 2>nul kwiqokobhe
    proc_open($cmd, [1 => ['umbhobho', 'w'], 2 => ['null']], $imibhobho);

  • I-Firebird / Interbase, Recode kunye nezandiso ze-WDDX azibandakanyi kwi-distribution eyisiseko. Ezi zandiso ngoku zihanjiswa nge-PECL;
  • Idluliselwe kwicandelo iphelelwe lixesha iimpawu ezifana nabaqhubi be-ternary abahleliyo ngaphandle kwezibiyeli, ukufikelela kuluhlu lweziqalelo kunye neentambo usebenzisa iibrayisi ezigobileyo ("$var{$idx}"), is_real() umsebenzi kunye nokuphosa kwinyani, usebenzisa igama elingundoqo lomzali ngaphandle kweklasi yomzali, iparameter allow_url_bandakanya uqwalaselo. , usebenzisa array_key_exists() kwizinto.

    Imisebenzi get_magic_quotes_gpc(), get_magic_quotes_runtime(), kunye
    hebrevc(), convert_cyr_string(), money_format(), ezmlm_hash(), restore_include_path(), ldap_control_paged_result_response(), ldap_control_paged_result(),ReflectionType::__toString().

    Isilumkiso malunga nokusetyenziswa kwesici esiphelelwe lixesha sinikezelwe xa uzama ukucubungula iisimboli ezingachanekanga kwimisebenzi
    base_convert (), bindec (), octdec () kunye ne-hexdec (), kwaye xa ukhankanya ipateni engeyomtya kwi-mb_ereg_replace ().

umthombo: opennet.ru

Yongeza izimvo