Kutulutsidwa kwa chilankhulo cha pulogalamu ya PHP 7.4

Pambuyo pa chaka cha chitukuko zoperekedwa kutulutsidwa kwa chilankhulo cha pulogalamu PHP 7.4. Nthambi yatsopanoyi ili ndi mndandanda wazinthu zatsopano, komanso zosintha zingapo zomwe zimaphwanya kugwirizanitsa.

Chinsinsi kuwongolera mu PHP 7.4:

  • Zolemba - katundu wamagulu tsopano atha kuphatikiza zidziwitso zamtundu, mwachitsanzo:

    Wogwiritsa ntchito {
    anthu int $id;
    zingwe zapagulu $ dzina;
    }

  • Mwachidule syntax pofotokozera ntchito "fn(parameter_list) => expr" yokhala ndi kuchuluka kogwirizana ndi mtengo. Mwachitsanzo, β€œfn($x) => $x + $y” ndi ofanana ndi β€œ$fn2 = ntchito ($x) gwiritsani ntchito ($y) {bwererani $x + $y;}”);
  • Wogwira ntchito zachidule "??=" zomwe zingagwiritsidwe ntchito kutanthauzira mtengo wokhazikika ("a ??= b" ndi wofanana ndi "a = a ?? b", ngati "a" akufotokozedwa mtengo wake wasungidwa, ndipo ngati sunafotokozedwe. amapatsidwa mtengo "b");
  • Zochepa mwayi kusunga mndandanda wa cholowa cha mitundu mu mitundu yobwereranso, kapena kuthekera kosinthira mindandanda yamitundu yoyambirira m'mitundu yotsutsa (kukondana mtundu wobwerera ndi mkangano wamtundu wa contravariance). Zomanga zotsatirazi zitha kugwiritsidwa ntchito mu PHP:

    kalasi A {}
    kalasi B imawonjezera A {}

    Wopanga kalasi {
    njira yogwirira ntchito pagulu (): A {}
    }
    class ChildProducer akuwonjezera Producer {
    njira yogwirira ntchito pagulu (): B {}
    }

  • Kutsegula woyendetsa mkati mwa magulu "... $ var", kulola sinthani magulu omwe alipo pofotokoza mndandanda watsopano;

    $parts = ['apulo', 'peyala'];
    $fruits = ['nthochi', 'orange', …$parts, 'watermelon'];
    // ['nthochi', 'lalanje', 'apulo', 'peyala', 'chivwende'];

  • Mwayi chiwonetsero chazithunzi zazikulu zokhala ndi malire mu manambala enieni (1_000_000_00);
  • thandizo maulalo ofooka, zomwe zimakulolani kuti musunge mawu a chinthu, koma osaletsa wosonkhanitsa zinyalala kuchotsa chinthu chogwirizana nacho;
  • Watsopano limagwirira kusakatula kwa chinthu (kuphatikiza kwa Serializable ndi __sleep()/__wakeup()), komwe kudalowa m'malo mwa mawonekedwe a Serializable, omwe adzachotsedwa;

    // Kubweza mndandanda womwe uli ndi zigawo zonse za chinthucho;
    ntchito yapagulu __serialize(): gulu;

    // Kubwezeretsanso mkhalidwe wa chinthu kuchokera pamndandanda
    ntchito pagulu __unserialize(zosanjikiza $data): zopanda kanthu;

  • Amaloledwa kutaya zosiyana ndi njira __toString();
  • Thandizo lowonjezera pakutsitsa kachidindo kachinthu. Wowonjezera parameter yokhazikitsa
    opcache.preload, momwe mungatchulire PHP script yomwe idzasonkhanitsidwe ndikuyendetsedwa seva ikayamba. Script iyi imatha kuyika ma opcode a mafayilo ena kudzera pakuphatikizidwa kwawo mwachindunji kapena kugwiritsa ntchito opcache_compile_file() ntchito;

  • Anawonjezera ntchito ya crc32c ku Hash extension kuti muwerenge ma checksums pogwiritsa ntchito Castagnoli polynomial;
  • Thandizo lowonjezera ku password_hash () ntchito ya njira zachinsinsi za hashing argon2i ndi argin2id, pakukhazikitsa laibulale ya Sodium, ngati PHP imamangidwa popanda libargon;
  • Ntchito yowonjezera mb_str_split (), yofanana ndi str_split (), koma ikugwira ntchito osati ndi ma byte koma ndi malo amtundu mu chingwe cha multi-byte;
  • The strip_tags() ntchito tsopano ili ndi kuthekera kodutsa mndandanda wokhala ndi mayina ama tag, mwachitsanzo. m'malo mwa strip_tags($str, ' ') mutha kutchulanso strip_tags($str, ['a', 'p']);
  • proc_open() imalola ma operands kuti alembedwe mndandanda m'malo mwa chingwe kuti ayendetse, komanso imaperekanso kuwongolera ulusi ndikuthandizira kumasulira kwa fayilo yopanda pake;

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

    // Monga 2>&1 mu chipolopolo
    proc_open($cmd, [1 => ['paipi', 'w'], 2 => ['redirect', 1]], $mapaipi);

    // ngati 2>/dev/null kapena 2>nul mu chipolopolo
    proc_open($cmd, [1 => ['paipi', 'w'], 2 => ['null']], $mapaipi);

  • Firebird / Interbase, Recode ndi WDDX zowonjezera sizikuphatikizidwa pakugawa koyambira. Zowonjezera izi tsopano zikugawidwa kudzera ku PECL;
  • Zasamutsidwa ku gulu zachikale zinthu monga nested ternary operators popanda mabatani, kupeza zinthu zingapo ndi zingwe pogwiritsa ntchito ma curly braces ("$ var{$idx}"), is_real () ntchito ndikuponyera zenizeni, pogwiritsa ntchito mawu ofunikira opanda kalasi ya makolo, parameter allow_url_include masinthidwe , pogwiritsa ntchito array_key_exists() pa zinthu.

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

    Chenjezo lokhudza kugwiritsa ntchito chinthu chosatha chaperekedwa poyesa kukonza zizindikiro zolakwika muzochita
    base_convert(), bindec(), octdec() ndi hexdec(), komanso pofotokoza mawonekedwe osakhala a zingwe mu mb_ereg_replace().

Source: opennet.ru

Kuwonjezera ndemanga