Tso tawm PHP 8.3 programming lus

Tom qab ib xyoos ntawm kev txhim kho, kev tso tawm ntawm PHP 8.3 programming lus tau nthuav tawm. Cov ceg tshiab suav nrog cov yam ntxwv tshiab, nrog rau ntau qhov kev hloov pauv uas cuam tshuam kev sib raug zoo.

Cov kev hloov pauv tseem ceeb hauv PHP 8.3:

  • Thaum lub sijhawm cloning chav kawm, nws muaj peev xwm rov pib dua cov khoom nrog "nyeem nkaus xwb" tus cwj pwm. Overriding readonly cov khoom raug tso cai tsuas yog hauv "__clone" muaj nuj nqi: readonly class Post { public function __construct( public DateTime $createdAt , ) {} public function __clone() { $this->createdAt = new DateTime(); // tso cai txawm tias cov cuab yeej "createdAt" yog nyeem nkaus xwb. }}
  • Muaj peev xwm siv qhov tsis tu ncua nrog hom qhia hauv cov chav kawm, qhov zoo thiab cov lej suav tau muab: chav kawm Foo { const hlua BAR = 'baz'; }
  • Ntxiv kev txhawb nqa rau "#[Override]" tus cwj pwm, uas tus tsim tawm tuaj yeem qhia rau tus neeg txhais lus tias txoj kev cim cim overrides qee tus niam txiv txoj kev. Yog tsis muaj override, tus neeg txhais lus yuav pom qhov yuam kev.
  • Hloov tuav ntawm qhov tsis zoo raws li qhov ntsuas array. Piv txwv li, thaum ntxiv ib lub caij nrog tus lej "-5" rau qhov khoob khoob thiab ntxiv lwm lub caij, yav dhau los lub ntsiab lus thib ob tau txais kev cawmdim nrog qhov ntsuas "0", tab sis pib ntawm version PHP 8.3 nws yuav raug cawm nrog qhov ntsuas "-4" . $array = []; $array[-5] = 'ua'; $array[] = 'b'; var_export($array); // Tau array (-5 => 'a', 0 => 'b') // Ua array (-5 => 'a', -4 => 'b')
  • Ntxiv lub peev xwm los tsim cov chav kawm tsis qhia npe hauv hom nyeem nkaus xwb: $ chav kawm = tshiab nyeem nkaus xwb { pej xeem txoj haujlwm __construct( pej xeem txoj hlua $ foo = 'bar', ) {} };
  • Ntxiv json_validate() muaj nuj nqi kom sai xyuas yog tias ib txoj hlua nyob hauv JSON hom yam tsis tau ua haujlwm txiav txim siab. json_validate(string $json, int $depth = 512, int $flags = 0): bool
  • Cov txheej txheem tshiab tau ntxiv rau Randomizer chav kawm, uas muab API qib siab rau tsim cov lej pseudo-random thiab cov kab ke: getBytesFromString rau tsim ib txoj hlua ntawm ib qho me me, siv nyob rau hauv random xaj cov cim tam sim no hauv lwm txoj hlua; getFloat thiab nextFloat los tsim ib qho random floating point naj npawb uas ntog hauv qhov kev teev tseg.
  • Ntxiv qhov muaj peev xwm los khaws cov khoom tsis tu ncua siv dynamic class syntax: chav kawm Foo { const BAR = 'bar'; } $name = 'BAR'; // Yav dhau los, kom rov qab tau qhov BAR tas li, koj yuav tsum hu mus tas li (Foo::class . '::'. $name); // Tam sim no cia li qhia Foo::{$name};
  • Ntxiv tiam ntawm tus kheej kev zam (DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError) nyob rau hauv rooj plaub ntawm cov teeb meem tshwm sim nyob rau hauv kev ua hauj lwm ua hauj lwm nrog hnub tim thiab lub sij hawm.
  • Txhim kho kev tuav ntawm qhov yuam kev uas tshwm sim thaum parsing ntawm serialized cov ntaub ntawv nyob rau hauv lub unserialize() muaj nuj nqi. Thaum muaj teeb meem, unserialize() tam sim no teeb meem E_WARNING es tsis txhob E_NOTICE.
  • Cov kev hloov pauv tau ua rau ntau yam () ua haujlwm. Ib qho kev zam yog tsim los thaum sim hla cov khoom, cov peev txheej lossis cov arrays nyob rau hauv qhov sib txawv uas txhais tau ntau thaj tsam, nrog rau thaum qhia tus nqi tsis zoo hauv $ kauj ruam parameter lossis tus nqi tsis tau txhais hauv ib qho kev ntsuas. Daim ntawv teev cov cim tam sim no tuaj yeem tso tawm thaum qhia cov hlua tsis yog cov lej (piv txwv li, "ntau yam('5', 'z')").
  • Hloov cov cwj pwm ntawm cov yam ntxwv nrog cov khoom zoo li qub, uas tam sim no override cov khoom zoo li qub tau txais los ntawm cov niam txiv hauv chav kawm.
  • Ntxiv cov chaw rau pawg overflow tiv thaiv. Lub zend.max_allowed_stack_size thiab zend.reserved_stack_size cov lus qhia tau muab ntxiv rau hauv cov ntaub ntawv ini, txhais qhov siab tshaj plaws tso cai thiab tshwj tseg pawg loj. Qhov kev zov me nyuam yuav tsoo thaum mus txog qhov kawg ntawm pawg, thaum cov pawg muaj ntau tshaj qhov sib txawv ntawm zend.max_allowed_stack_size thiab zend.reserved_stack_size (kev tua yuav nres ua ntej qhov kev ua txhaum segmentation tshwm sim). Los ntawm lub neej ntawd, tus nqi zend.max_allowed_stack_size yog teem rau 0 (0-qhov loj yog txiav txim siab; kom lov tes taw qhov txwv, koj tuaj yeem teeb tsa rau -1).
  • Ntxiv cov haujlwm tshiab POSIX posix_sysconf(), posix_pathconf(), posix_fpathconf() thiab posix_eaccess().
  • mb_str_pad muaj nuj nqi tau ntxiv, uas yog ib qho piv txwv ntawm str_pad() txoj hlua ua haujlwm, tsim los ua haujlwm nrog ntau-byte encodings xws li UTF-8.
  • Tso cai rau koj los tsim kev kaw los ntawm txoj hauv kev thiab dhau cov lus sib cav muaj npe rau cov kaw. $test = new Test(); $ kaw = $test->magic(…); $ kaw(a: 'nyob zoo', b: 'world');
  • Hloov tus cwj pwm thaum tuav qhov pom kev tsis tu ncua hauv cov interfaces. interface I { public const FOO = 'foo'; } class C siv I { private const FOO = 'foo'; }
  • Lub peev xwm ntawm array_sum(), array_product(), posix_getrlimit(), gc_status(), class_alias(), mysqli_poll(), array_pad() thiab proc_get_status() functions tau nthuav dav.
  • Lub peev xwm dhau qhov tsis zoo $ dav tus nqi rau mb_strimwidth() tau raug txiav tawm. Tus NumberFormatter::TYPE_CURRENCY tas li raug tshem tawm. Kev them nyiaj yug rau kev hu rau ldap_connect() muaj nuj nqi nrog ob tsis txwv $host thiab $port tau raug txiav lawm. Qhov teeb tsa opcache.consistency_checks tau raug tshem tawm.

Tau qhov twg los: opennet.ru

Ntxiv ib saib