אַלף טעסטינג פון PHP 8.2 האט אנגעהויבן

דער ערשטער אַלף מעלדונג פון די נייַע צווייַג פון די PHP 8.2 פּראָגראַממינג שפּראַך איז דערלאנגט. די מעלדונג איז סקעדזשולד פֿאַר 24 נאוועמבער. די הויפּט ינאָווויישאַנז שוין בנימצא פֿאַר טעסטינג אָדער פּלאַננעד פֿאַר ימפּלאַמענטיישאַן אין PHP 8.2:

  • Добавлены отдельные типы «false» и «null», которые могут использоваться, например, для возвращения функцией признака завершения с ошибкой или пустого значения. Ранее «false» и «null» могли использоваться только в связке с другими типами (например, «string|false»), а теперь могут применяться отдельно: function alwaysFalse(): false { return false; }
  • צוגעגעבן די פיייקייט צו צייכן אַ קלאַס ווי בלויז לייענען. פּראָפּערטיעס אין אַזאַ קלאסן קענען זיין באַשטימט בלויז אַמאָל, נאָך וואָס זיי קענען ניט זיין געביטן. ביז אַהער, יחיד קלאַס פּראָפּערטיעס קען זיין אנגעצייכנט בלויז פֿאַר לייענען, אָבער איצט איר קענען געבן דעם מאָדע פֿאַר אַלע קלאַס פּראָפּערטיעס אין אַמאָל. ספּעציפיצירן די "לייענען" פאָן אין די קלאַס מדרגה אויך בלאַקס פּראַפּערטיז צו זיין מוסיף דינאַמיקאַללי צו די קלאַס. לייענען בלויז קלאַס פּאָסט {פּובליק פֿונקציע __קאַנסטראַקט (פובליק שטריקל $ טיטל, עפנטלעך מחבר $ מחבר,) {}} $ פּאָסט = נייַ פּאָסטן (/* … */); $post->unknown = 'פאַלש'; // טעות: קענען ניט מאַכן דינאַמיש פאַרמאָג פּאָסטן::$אומבאַקאַנט
  • Объявлена устаревшей возможность динамического создания свойств в классе (как «post->unknown» в примере выше). В PHP 9.0 обращение к свойствам, изначально не определённым в классе, будет приводить к ошибке (ErrorException). Классы, предоставляющие методы __get и __set для создания свойств, или динамические свойства в stdClass продолжат работать без изменений, прекратится поддержка только неявной работы с несуществующими свойствами для того чтобы защитить разработчика от скрытых ошибок. Для сохранения работы старого кода предложен атрибут «#[AllowDynamicProperties]», разрешающий использование динамических свойств.
  • פּראָווידעס די פיייקייט צו פילטער שפּירעוודיק פּאַראַמעטערס אין דער אָנלייגן שפּור רעזולטאַט בעשאַס אַ טעות. ויסשעפּן זיכער אינפֿאָרמאַציע קען זיין נויטיק ווען אינפֿאָרמאַציע וועגן ערראָרס וואָס פּאַסירן איז אויטאָמאַטיש געשיקט צו דריט-פּאַרטיי באַדינונגס וואָס שפּור פּראָבלעמס און מיטטיילן דעוועלאָפּערס וועגן זיי. פֿאַר בייַשפּיל, איר קענען ויסשליסן פּאַראַמעטערס וואָס אַרייַננעמען וסערנאַמעס, פּאַסווערדז און סוויווע וועריאַבאַלז פון טרייסינג. פֿונקציע טעסט ($ פאָאָ, #[\ SensitiveParameter] $ פּאַראָל, $ באַז) {וואַרפן נייַ ויסנעם ('טעות'); } test('foo', 'password', 'baz'); פאַטאַל טעות: ונקאַשט ויסנעם: טעות אין test.php:8 סטאַק שפּור: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {הויפּט} ארלנגעווארפן אין test.php אויף שורה 8
  • די פיייקייט צו פאַרבייַטן בייַטעוודיק וואַלועס אין סטרינגס ניצן די אויסדרוקן "${וואַר}" און ${(var)} איז דיפּרישיייטיד. שטיצן פֿאַר די קאַמאַנלי געוויינט "{$var}" און "$var" סאַבסטיטיושאַנז איז ריטיינד. פֿאַר בייַשפּיל: "העלא {$וועלט}"; גוט "העלא $וועלט"; גוט "העלא ${וועלט}"; דיפּרישיייטיד: ניצן ${} אין סטרינגס איז דיפּרישיייטיד
  • דיפּרישיייטיד טייל געשטיצט קאַללאַבלעס וואָס קענען זיין גערופן דורך "call_user_func($callable)" אָבער טאָן ניט שטיצן רופן אין די פאָרעם פון "$callable()": "זיך :: מעטאַד" "פאָטער :: מעטאַד" "סטאַטיק" :: מעטאַד " ["זיך", "מעטאָד"] ["פאָו", "מעטאָד"] ["סטאַטיק", "מעטאָד"] ["Foo", "Bar::method"] [נייַ Foo, "Bar: :method" ]
  • ימפּלאַמענאַד לאָקאַל-פרייַ פאַל קאַנווערזשאַן. פאַנגקשאַנז ווי strtolower () און strtoupper () איצט שטענדיק גער די פאַל פון אותיות אין די ASCII קייט ווי אויב שטעלן צו די "C" לאָקאַל.

מקור: opennet.ru

לייגן אַ באַמערקונג