Alpha probatio PHP 8.2 incepit

Primum alpha emissio novi rami PHP 8.2 programmationis linguae donatum est. Dimissio hora diei 24 Novembris accedatur. Praecipuae innovationes iam praesto sunt ad probandum vel destinatum ad exsequendum in PHP 8.2:

  • Additae sunt species separatae "false" et "nullae", quae adhiberi possunt, exempli gratia, ad functionem remittendi vexillum terminationis erroris vel valoris inani. Antea, "falsum" et "nulla" in conjunctione cum aliis speciebus (exempli gratia "string|falsum") adhiberi possunt, nunc separatim adhiberi possunt: ​​munus semper falsum (): falsum est falsum reddere; }
  • Facultatem adiecit ut classis notaret ut solum legeretur. Proprietates in talibus generibus semel tantum poni possunt, postquam mutari non possunt. Antea singulae classis proprietates solum lege notari potuerunt, nunc autem hunc modum omnibus proprietatibus simul efficere potes. "Readon" specificare vexillum in gradu classis etiam impedit proprietates dynamice ad genus additae. readonly class Post { functionem publicam __construct( public string $title, public Author $author, ) { } } $post = new Post(/* ... */); $post->incognita = 'wronga'; // Error: Non potest creare dynamic possessionem Post :: $ ignotus
  • Deprecata est facultas dynamice creandi proprietates in genere (sicut "post- ignotus" in exemplo supra. In PHP 9.0, accessus proprietatum quae in classe non sunt definita, error erit (ErrorException). Classes quae praebent __get et __ modos creandi proprietates, vel proprietates dynamicas in stdClass perseveret sine mutationibus laborare, solum opus implicitum cum proprietatibus non-existentibus sustentabitur ad tutelam evitorum ab occultis cimices. Ad opus vetusti Codicis conservandum, proponitur attributum "#[Properties]", permittens usum proprietatum dynamicarum.
  • Facultatem praebet ut parametri sensitivas in ACERVUS vestigii output eliquare per errorem. Quaedam indicia exsectio necessaria esse potest cum informationes de erroribus occurrentibus automatice ad tertiae factionis officia mittuntur quae difficultates vestigent et de eis tincidunt certiorem faciunt. Exempli gratia, parametros excludere potes quae usores, Tesserae, et variabiles ambitus ex typulis includunt. munus test($foo, #[\SensitiveParameter] $password, $baz ) { mittent novam exceptionem ('Error'); } test('foo', 'password', 'baz'); Error fatalis: Uncaught Exceptio: Error in test.php:8 Stack trace: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} proiectus in test.php in linea 8
  • Facultas substituendi valores variabiles in chordis utens vocibus "${var}" et ${(var)} deprecata est. Subsidia pro substitutionibus "{$var}" et "$var" communibus adhibitis retenta sunt. Verbi gratia: "Salve {$mundo}"; OK "Salvete $mundo"; OK "Salvete ${mundo}"; Deprecatus est: Utens ${} chordis deprecatur
  • Callables partim imploratae, quae per "call_user_func($callable)" vocari possunt, partim suffragantur, sed vocationis formam "$ callable()": "sui :: methodum" "stare" :: methodum ["se", "modus"] ["parens", "modum"] ["static", "modum"] ["Foo", "Bar:: methodus"] [nova Foo, "Bar: methodus" ]
  • Conversio localis-independens casus impletur. Munera sicut strtolower() et strtoupper() nunc semper casus characterum in ASCII convertunt ac si ad "C" localem positi.

Source: opennet.ru