PHP 8.2 ඇල්ෆා පරීක්ෂාව ආරම්භ කර ඇත

PHP 8.2 ක්‍රමලේඛන භාෂාවේ නව ශාඛාවේ පළමු ඇල්ෆා නිකුතුව ඉදිරිපත් කර ඇත. නිකුතුව නොවැම්බර් 24 වැනිදාට නියමිතයි. PHP 8.2 හි පරීක්ෂා කිරීම සඳහා හෝ ක්‍රියාත්මක කිරීමට සැලසුම් කර ඇති ප්‍රධාන නවෝත්පාදනයන්:

  • "අසත්‍ය" සහ "ශුන්‍ය" යන වෙනම වර්ග එකතු කරන ලදී, උදාහරණයක් ලෙස, දෝෂ අවසන් කිරීමේ ධජයක් හෝ හිස් අගයක් ආපසු ලබා දීමේ කාර්යයක් සඳහා භාවිතා කළ හැක. මීට පෙර, "false" සහ "null" වෙනත් වර්ග සමඟ පමණක් භාවිතා කළ හැකි විය (උදාහරණයක් ලෙස, "string|false"), නමුත් දැන් ඒවා වෙන වෙනම භාවිතා කළ හැක: function alwaysFalse(): false { return false; }
  • පන්තියක් කියවීමට පමණක් ලෙස සලකුණු කිරීමේ හැකියාව එක් කරන ලදී. එවැනි පන්තිවල දේපල එක් වරක් පමණක් සැකසිය හැකි අතර, පසුව ඒවා වෙනස් කළ නොහැක. මීට පෙර, තනි පන්ති ගුණාංග කියවීමට පමණක් සලකුණු කළ හැකි නමුත් දැන් ඔබට මෙම මාදිලිය සියලුම පන්ති ගුණාංග සඳහා එකවර සක්‍රීය කළ හැක. පන්ති මට්ටමින් "කියවීමට පමණක්" ධජය සඳහන් කිරීම මගින් පන්තියට ගතිකව එකතු කිරීමෙන් ගුණාංග අවහිර කරයි. කියවීමට පමණක් පන්තියේ Post { public function __construct( public string $title, public Author $author, ) {}} $post = new Post(/* … */); $post->නොදන්නා = 'වැරදි'; // දෝෂය: ගතික දේපල නිර්මාණය කළ නොහැක Post::$නොදන්නා
  • පන්තියක ගුණාංග ගතිකව නිර්මාණය කිරීමේ හැකියාව (ඉහත උදාහරණයේ "පශ්චාත්->නොදන්නා" වැනි) අත්හැර ඇත. PHP 9.0 හි, පන්තියේ මුලින් නිර්වචනය නොකළ ගුණාංග වෙත ප්‍රවේශ වීම දෝෂයක් ඇති කරයි (ErrorException). ගුණාංග සෑදීම සඳහා __get සහ __set ක්‍රම සපයන පන්ති, හෝ stdClass හි ගතික ගුණාංග වෙනස්කම් නොමැතිව දිගටම ක්‍රියා කරනු ඇත, සැඟවුණු දෝෂ වලින් සංවර්ධකයා ආරක්ෂා කිරීමට සහාය නොදක්වන්නේ නොපවතින ගුණාංග සහිත ව්‍යංග වැඩ පමණි. පැරණි කේතයේ කාර්යය සුරැකීමට, ගතික ගුණාංග භාවිතා කිරීමට ඉඩ සලසමින්, "#[AllowDynamicProperties]" ගුණාංගය යෝජනා කෙරේ.
  • දෝෂයක් අතරතුර ස්ටැක් ට්‍රේස් ප්‍රතිදානයේ සංවේදී පරාමිති පෙරීමට හැකියාව සපයයි. සිදුවන දෝෂ පිළිබඳ තොරතුරු ස්වයංක්‍රීයව තෙවන පාර්ශ්ව සේවාවන් වෙත යවන විට ගැටළු නිරීක්ෂණය කර ඒවා පිළිබඳව සංවර්ධකයන්ට දැනුම් දෙන විට ඇතැම් තොරතුරු කපා හැරීම අවශ්‍ය විය හැකිය. උදාහරණයක් ලෙස, ඔබට ලුහුබැඳීමෙන් පරිශීලක නාම, මුරපද සහ පරිසර විචල්‍ය ඇතුළත් පරාමිති බැහැර කළ හැක. ශ්‍රිත පරීක්ෂණය ($foo, #[\SensitiveParameter] $password, $baz ) { නව ව්‍යතිරේකය ('දෝෂය'); } පරීක්ෂණය ('foo', 'මුරපදය', 'baz'); මාරාන්තික දෝෂය: අල්ලා නොගත් ව්‍යතිරේකය: test.php හි දෝෂය: 8 තොග හෝඩුවාව: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} test.php හි දමන ලදී 8 පේළියේ
  • "${var}" සහ ${(var)} යන ප්‍රකාශන භාවිතා කරමින් විචල්‍ය අගයන් තන්තු වලට ආදේශ කිරීමේ හැකියාව අත්හැර ඇත. බහුලව භාවිතා වන "{$var}" සහ "$var" ආදේශන සඳහා සහය රඳවා ඇත. උදාහරණයක් ලෙස: "Hello {$world}"; හරි "Hello $world"; හරි "Hello ${world}"; අත්හරින ලදී: තන්තු වලින් ${} භාවිතා කිරීම අත්හරිනු ලැබේ
  • "call_user_func($callable)" හරහා ඇමතීමට හැකි නමුත් "$callable()": "self:: method" "parent:: method" "static" :: method වලින් ඇමතීමට සහාය නොදක්වන අර්ධ වශයෙන් සහය දක්වන ඇමතුම් අත්හරින ලදී " ["ස්වයං", "ක්‍රමය"] ["මාපිය", "ක්‍රමය"] ["ස්ථිතික", "ක්‍රමය"] ["ෆූ", "බාර්:: ක්‍රමය"] [නව ෆූ, "බාර්:: ක්‍රමය" ]
  • ක්‍රියාත්මක කරන ලද ස්ථාන-ස්වාධීන සිද්ධි පරිවර්තනය. strtolower() සහ strtoupper() වැනි ශ්‍රිත දැන් සෑම විටම ASCII පරාසයේ ඇති අක්ෂර "C" පෙදෙසියට සකසා ඇති ආකාරයට පරිවර්තනය කරයි.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න