Tso tawm PHP 7.4 programming lus

Tom qab ib xyoos ntawm kev loj hlob hais tawm programming lus tso tawm PHP 7.4. Cov ceg tshiab suav nrog cov yam ntxwv tshiab, nrog rau ntau qhov kev hloov pauv uas cuam tshuam kev sib raug zoo.

Ntsiab kev txhim kho hauv PHP 7.4:

  • Ntaus yam khoom - Cov khoom hauv chav kawm tam sim no tuaj yeem suav nrog cov lus tshaj tawm, piv txwv li:

    class User {
    pej xeem int $id;
    pej xeem txoj hlua $name;
    }

  • Luv luv syntax rau kev txhais cov haujlwm "fn(parameter_list) => expr" nrog rau kev khi los ntawm tus nqi. Piv txwv li, β€œfn($x) => $x + $y” yog piv rau β€œ$fn2 = function ($x) siv ($y) {return $x + $y;}”);
  • Shorthand assignment operator "??=" uas tuaj yeem siv los txheeb xyuas tus nqi qub ("a ??= b" zoo ib yam li "a = a ?? b", yog "a" txhais tau tias nws tus nqi khaws cia, thiab yog tias tsis tau txhais nws yog muab tus nqi "b" );
  • Txwv tsis pub sijhawm khaws cia qhov qub txeeg qub teg ntawm hom nyob rau hauv derived rov hom, los yog muaj peev xwm thim rov qab lub hierarchy ntawm cov thawj hom nyob rau hauv derived argument hom (kev sib txawv rov hom thiab sib cav hom contravariance). Cov qauv hauv qab no tuaj yeem siv tau hauv PHP:

    chav kawm A {}
    chav kawm B txuas ntxiv A {}

    class Producer {
    public function method(): A {}
    }
    chav kawm ChildProducer txuas ntxiv Tus tsim tawm {
    public function method(): B {}
    }

  • Unpacking tus neeg teb xov tooj hauv arrays β€œβ€¦$var”, tso cai ua kev hloov ntawm cov array uas twb muaj lawm thaum txhais cov array tshiab;

    $parts = ['apple', 'pear'];
    $fruits = ['banana', 'txiv kab ntxwv', …$parts, 'watermelon'];
    // ['banana', 'txiv kab ntxwv', 'apple', 'pear', 'watermelon'];

  • Sijhawm pom kev sawv cev ntawm cov lej loj nrog tus lej ntawm cov lej (1_000_000_00);
  • kev pab txhawb nqa tsis muaj zog txuas, uas tso cai rau koj khaws cov ntaub ntawv siv rau ib qho khoom, tab sis tsis txhob thaiv cov khib nyiab los ntawm kev rho tawm cov khoom cuam tshuam;
  • Tshiab lub tshuab khoom serialization (ua ke ntawm Serializable thiab __sleep()/__wakeup()), uas hloov lub Serializable interface, uas yuav tsum deprecated;

    // Rov qab ib qho array uas muaj tag nrho cov xeev ntawm cov khoom;
    pej xeem muaj nuj nqi __serialize(): array;

    // Restores lub xeev ntawm ib yam khoom los ntawm ib qho array
    pej xeem muaj nuj nqi __unserialize(array $data): void;

  • Tso cai pov tseg kev zam los ntawm ib txoj kev __toString();
  • Ntxiv kev txhawb nqa rau preloading cov khoom code cache. Ntxiv parameter rau kev teeb tsa
    opcache.preload, los ntawm qhov koj tuaj yeem hais qhia ib tsab ntawv PHP uas yuav muab tso ua ke thiab khiav thaum lub server pib. Tsab ntawv no tuaj yeem thauj cov opcode ntawm lwm cov ntaub ntawv los ntawm lawv cov kev suav ncaj qha lossis siv opcache_compile_file() muaj nuj nqi;

  • Ntxiv crc32c muaj nuj nqi rau Hash txuas ntxiv los xam cov tshev nyiaj siv Castagnoli polynomial;
  • Ntxiv kev txhawb nqa rau tus password_hash() muaj nuj nqi rau lo lus zais hashing txoj kev argon2i thiab argin2id, nyob rau hauv kev siv ntawm Sodium tsev qiv ntawv, yog PHP yog tsim tsis muaj libargon;
  • Ntxiv muaj nuj nqi mb_str_split(), zoo ib yam li str_split(), tab sis kev khiav hauj lwm tsis nrog bytes tab sis nrog cov cim txoj hauj lwm nyob rau hauv ib tug multi-byte hlua;
  • Lub strip_tags() muaj nuj nqi tam sim no muaj peev xwm dhau ib qho array nrog cov npe tag, i.e. es tsis txhob strip_tags($str, ' ') tam sim no koj tuaj yeem qhia strip_tags($str, ['a', 'p']);
  • proc_open() tso cai rau cov operands tau teev nyob rau hauv ib qho array, es tsis yog ib txoj hlua khiav, thiab tseem muab xov redirection thiab kev txhawb nqa rau ib tug null ntaub ntawv descriptor;

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

    // Zoo li 2>&1 hauv plhaub
    proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['redirect', 1]], $pipes);

    // zoo li 2>/dev/null lossis 2>nul hauv plhaub
    proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes);

  • Firebird/Interbase, Recode thiab WDDX txuas ntxiv raug tshem tawm los ntawm kev faib tawm yooj yim. Cov kev txuas ntxiv tam sim no tau muab faib los ntawm PECL;
  • Hloov mus rau qeb dhau lawm nta xws li nested ternary operators yam tsis muaj kab lus, nkag mus rau array ntsiab thiab cov hlua siv curly braces ("$var{$idx}"), lub is_real() muaj nuj nqi thiab casting rau tiag, siv cov niam txiv lo lus tseem ceeb yam tsis muaj niam txiv chav kawm, parameter allow_url_include configurations , siv array_key_exists() ntawm cov khoom.

    Cov haujlwm get_magic_quotes_gpc(), get_magic_quotes_runtime(), thiab
    hebrevc(), convert_cyr_string(), money_format(), ezmlm_hash(), restore_include_path(), ldap_control_paged_result_response(), ldap_control_paged_result(), ReflectionType::__toString().

    Cov lus ceeb toom txog kev siv cov khoom siv tsis siv neeg tau muab thaum sim ua cov cim tsis raug hauv cov haujlwm
    base_convert(), bindec(), octdec() thiab hexdec(), thiab thaum qhia txog tus qauv uas tsis yog hlua hauv mb_ereg_replace().

Tau qhov twg los: opennet.ru

Ntxiv ib saib