Kev sim Alpha ntawm PHP 8.2 tau pib

Thawj alpha tso tawm ntawm ceg tshiab ntawm PHP 8.2 programming lus tau nthuav tawm. Qhov kev tso tawm yog teem rau lub Kaum Ib Hlis 24. Cov kev hloov tshiab tseem ceeb twb muaj rau kev sim lossis npaj rau kev siv hauv PHP 8.2:

  • Ntxiv cais hom "false" thiab "null", uas yuav siv tau, piv txwv li, rau ib tug muaj nuj nqi rov qab ib tug yuam kev txiav chij los yog tus nqi khoob. Yav dhau los, "false" thiab "null" tsuas yog siv tau ua ke nrog lwm hom (piv txwv li, "txoj hlua | cuav"), tab sis tam sim no lawv tuaj yeem siv cais: ua haujlwm alwaysFalse(): cuav { rov qab tsis tseeb; }
  • Ntxiv lub peev xwm los kos ib chav kawm raws li nyeem nkaus xwb. Cov cuab yeej hauv cov chav kawm no tuaj yeem tsim ib zaug xwb, tom qab ntawd lawv tsis tuaj yeem hloov pauv. Yav dhau los, cov khoom hauv chav kawm ib leeg tuaj yeem raug cim nyeem nkaus xwb, tab sis tam sim no koj tuaj yeem qhib hom no rau txhua chav kawm ib zaug. Qhia meej txog tus chij "readonly" ntawm qib kawm kuj tseem thaiv cov khoom los ntawm kev ntxiv dynamically rau hauv chav kawm. readonly class Post { public function __construct( public string $title, public Author $author, ) {} } $post = new Post(/* … */); $post->unknown = 'tsis ncaj ncees lawm'; // yuam kev: Tsis tuaj yeem tsim cov cuab yeej dynamic Post::$unknown
  • Lub peev xwm los tsim cov khoom muaj zog hauv chav kawm (xws li "post->unknown" hauv qhov piv txwv saum toj no) tau deprecated. Hauv PHP 9.0, nkag mus rau cov khoom uas tsis tau piav qhia hauv chav kawm yuav ua rau muaj qhov yuam kev (ErrorException). Cov chav kawm uas muab __get thiab __set txoj hauv kev los tsim cov khoom, lossis cov khoom muaj zog hauv stdClass yuav ua haujlwm ntxiv yam tsis muaj kev hloov pauv, tsuas yog ua haujlwm tsis zoo nrog cov khoom tsis muaj nyob yuav tau txais kev txhawb nqa los tiv thaiv tus tsim tawm los ntawm cov kab zais. Txhawm rau khaws cov haujlwm ntawm cov cai qub, "#[AllowDynamicProperties]" tus cwj pwm tau npaj tseg, tso cai rau kev siv cov khoom muaj zog.
  • Muab lub peev xwm lim rhiab tsis nyob rau hauv pawg kab tso zis thaum muaj kev ua yuam kev. Txiav tawm qee cov ntaub ntawv yuav tsim nyog thaum cov ntaub ntawv hais txog qhov tsis raug uas tshwm sim raug xa mus rau cov kev pabcuam thib peb uas taug qab cov teeb meem thiab qhia rau cov neeg tsim khoom txog lawv. Piv txwv li, koj tuaj yeem tshem tawm cov tsis suav nrog cov npe siv, passwords, thiab ib puag ncig hloov pauv los ntawm kev taug qab. function test($foo, #[\SensitiveParameter] $password, $baz ) { pov tshiab Exception('Error'); } test('foo', 'password', 'baz'); Qhov yuam kev tuag: Uncaught Exception: yuam kev hauv test.php:8 Stack trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} pov hauv test.php hauv kab 8
  • Lub peev xwm los hloov cov nqi sib txawv rau hauv cov hlua siv cov kab lus "${var}" thiab ${(var)} tau deprecated. Kev them nyiaj yug rau cov uas nquag siv "{$var}" thiab "$var" hloov pauv tau khaws cia. Piv txwv li: "Nyob zoo {$world}"; OK "Nyob zoo $world"; OK "Nyob zoo ${world}"; Deprecated: Siv ${} nyob rau hauv cov hlua yog deprecated
  • Deprecated ib feem txhawb callables uas tuaj yeem hu los ntawm "call_user_func($ callable)" tab sis tsis txhawb kev hu ua "$callable()": "tus kheej:: txoj kev" "niam txiv:: txoj kev" "static" :: txoj kev ["tus kheej", "txoj kev"] ["niam txiv", "txoj kev"] ["static", "txoj kev"] ["Foo", "Bar::method"] [new Foo, "Bar: :method" ]
  • Siv cov kev hloov pauv hauv cheeb tsam-kev ywj pheej. Cov haujlwm zoo li strtolower() thiab strtoupper() tam sim no ib txwm hloov cov ntaub ntawv ntawm cov cim hauv ASCII ntau yam li yog teem rau "C" hauv zos.

Tau qhov twg los: opennet.ru

Ntxiv ib saib