Алфа тестирање ПХП 8.2 је почело

Представљено је прво алфа издање нове гране програмског језика ПХП 8.2. Издање је заказано за 24. новембар. Главне иновације које су већ доступне за тестирање или планиране за имплементацију у ПХП 8.2:

  • Додати су одвојени типови „фалсе“ и „нулл“, који се могу користити, на пример, за враћање знака завршетка са грешком или празном вредношћу од стране функције. Раније су "фалсе" и "нулл" могли да се користе само у комбинацији са другим типовима (на пример, "стринг|фалсе"), али сада се могу користити одвојено: фунцтион алваисФалсе(): фалсе { ретурн фалсе; }
  • Додата могућност означавања класе као само за читање. Својства у таквим класама могу се подесити само једном, након чега неће бити доступна за промену. Раније су појединачна својства класе могла бити означена само за читање, али сада можете да укључите овај режим за сва својства класе одједном. Одређивање ознаке „само за читање“ на нивоу класе такође блокира динамичко додавање својстава класи. класа само за читање Објава { јавна функција __цонструцт( јавни стринг $титле, јавни аутор $аутхор, ) {} } $пост = нова објава(/* … */); $пост->ункновн = 'погрешно'; // Грешка: Није могуће креирати динамичко својство Пост::$ункновн
  • Способност динамичког креирања својстава у класи је застарела (као "пост->ункновн" у примеру изнад). У ПХП 9.0, приступање својствима која нису првобитно дефинисана у класи ће довести до грешке (ЕррорЕкцептион). Класе које обезбеђују методе __гет и __сет за креирање својстава или динамичке особине у стдЦласс ће наставити да раде непромењене, само ће имплицитни рад са непостојећим својствима бити заустављен како би се програмер заштитио од скривених грешака. Да би стари код радио, предложен је атрибут „#[АлловДинамицПропертиес]“, који омогућава коришћење динамичких својстава.
  • Обезбеђена је могућност филтрирања осетљивих подешавања у излазу праћења стека у време грешке. Изрезивање одређених информација може бити потребно када се информације о грешкама које се јављају аутоматски шаљу услугама трећих страна које прате проблеме и обавештавају програмере о њима. На пример, можете да искључите параметре из праћења који укључују корисничка имена, лозинке и променљиве окружења. фунцтион тест( $фоо, #[\СенситивеПараметер] $пассворд, $баз ) { тхров нев Екцептион('Еррор'); } тест('фоо', 'пассворд', 'баз'); Фатална грешка: Неухваћен изузетак: Грешка у тест.пхп:8 Праћење стека: #0 тест.пхп(11): тест('фоо', Објецт(СенситивеПараметерВалуе), 'баз') #1 {маин} бачено у тест.пхп на линији 8
  • Могућност замене вредности променљивих у низове помоћу израза „${вар}“ и ${(вар)}“ је застарела. Подршка за често коришћене замене „{$вар}“ и „$вар“ је задржана. На пример: "Здраво {$ворлд}"; ОК "Хелло $ворлд"; ОК "Здраво ${ворлд}"; Застарело: Употреба ${} у стринговима је застарела
  • Делимично подржани позиви који се могу позвати преко "цалл_усер_фунц($цаллабле)" су застарели, али не подржавају позивање у облику "$цаллабле()": "селф::метход" "парент::метход" "статиц :: метход" ["селф", "метход"] ["родитељ", "метод"] ["статиц", "метход"] ["Фоо", "Бар::метход"] [ново Фоо, "Бар: :метход" "]
  • Имплементирана конверзија великих и малих слова независна од језика. Функције као што су стртоловер() и стртоуппер() сада увек конвертују велика и мала слова знакова у АСЦИИ опсегу, као када се локализација поставља на "Ц".

Извор: опеннет.ру

Додај коментар