PHP 8.2 scaoileadh teanga cláir

Tar éis bliana forbartha, cuireadh i láthair scaoileadh na teanga ríomhchlárúcháin PHP 8.2. Áiríonn an brainse nua sraith gnéithe nua, chomh maith le roinnt athruithe a bhriseann comhoiriúnacht.

Príomhfheabhsúcháin i PHP 8.2:

  • Cuireadh leis an gcumas rang inléite amháin a mharcáil. Ní féidir airíonna i ranganna den sórt sin a shocrú ach uair amháin, agus ní féidir iad a athrú ina dhiaidh sin. Roimhe seo, d'fhéadfaí airíonna ranga aonair a mharcáil inléite amháin, ach anois is féidir leat an mód seo a chumasú do gach maoin ranga ag an am céanna. Má shonraítear an bhratach “inléite amháin” ag leibhéal an ranga, cuirtear bac freisin ar airíonna a chur leis an rang go dinimiciúil. aicme inléite amháin Post { feidhm phoiblí __construct( teaghrán poiblí $title, Údar poiblí $author, ) {} } $ post = Post nua(/* … */); $post->unknown = 'mícheart'; // Earráid: Ní féidir an t-airí dinimiciúil a chruthú Post::$unknown
  • Добавлены отдельные типы «true», «false» и «null», которые могут принимать только одно допустимое значение и использоваться, например, для возвращения функцией признака завершения с ошибкой или пустого значения. Ранее «true», «false» и «null» могли использоваться только в связке с другими типами (например, «string|false»), а теперь могут применяться отдельно: function alwaysFalse(): false { return false; }
  • Soláthraíonn sé an cumas paraiméadair íogair a scagadh san aschur rian cruachta le linn earráide. D’fhéadfadh go mbeadh gá le faisnéis áirithe a ghearradh amach nuair a sheoltar faisnéis faoi earráidí a tharlaíonn go huathoibríoch chuig seirbhísí tríú páirtí a rianaíonn fadhbanna agus a chuireann forbróirí ar an eolas fúthu. Mar shampla, is féidir leat paraiméadair a chuimsíonn ainmneacha úsáideoirí, pasfhocail agus athróga timpeallachta a eisiamh ón rianú. tástáil feidhme ( $ foo , #[ \ SensitiveParameter ] $password, $baz ) { caith Eisceacht nua ('Earráid'); } tástáil ('foo', 'focal faire', 'baz'); Earráid mharfach: Neamhghafa Eisceacht: Earráid i test.php:8 Rian cruachta: #0 test.php(11): test('foo', Object(SensitiveParameterValue), 'baz') #1 {main} thrown in test.php ar líne 8
  • Разрешено определение констант в типажах (trait, механизм для повторного использования кода). Доступ к константам, определённым в типаже, можно получить через класс, который использует типаж (но не через имя типажа). trait Foo { public const CONSTANT = 1; public function bar(): int { return self::CONSTANT; // Fatal error } } class Bar { use Foo; } var_dump(Bar::CONSTANT); // 1
  • Добавлена возможность задания типов в дизъюнктивной нормальной форме (DNF, Disjunctive Normal Form), позволяющей совместить объединение типов (коллекции из двух и более типов) и пересечение типов (типы, значения которых подпадают одновременно под несколько типов). class Foo { public function bar((A&B)|null $entity) { if ($entity === null) { return null; } return $entity; } }
  • Предложено новое расширение «Random» c функциями и классами для генерации псеводослучайных чисел и последовательностей. Модуль предоставляет объектно-ориентированный интерфейс, позволяет выбирать разные движки для генерации псеводослучайных чисел, в том числе пригодные для применения в криптографии, и предоставляет вспомогательные функции, например, для случайного перемешивания массивов и строк, выбора случайных ключей массива, одновременного использования нескольких генераторов со своим независимым состоянием. $rng = $is_production ? new Random\Engine\Secure() : new Random\Engine\Mt19937(1234); $randomizer = new Random\Randomizer($rng); $randomizer->shuffleString(‘foobar’);
  • Cur i bhfeidhm comhshó cásanna locale-neamhspleách. Tiontaíonn feidhmeanna cosúil le strtolower() agus strtoupper() cás na gcarachtar sa raon ASCII i gcónaí amhail is go bhfuil siad socraithe don locale "C".
  • Добавлены новые функции: mysqli_execute_query, curl_upkeep, memory_reset_peak_usage, ini_parse_quantity, libxml_get_external_entity_loader, sodium_crypto_stream_xchacha20_xor_ic, openssl_cipher_key_length.
  • Добавлены новые методы: mysqli::execute_query, ZipArchive::getStreamIndex, ZipArchive::getStreamName, ZipArchive::clearError, ReflectionFunction::isAnonymous, ReflectionMethod::hasPrototype.
  • Объявлена устаревшей возможность динамического создания свойств в классе. В PHP 9.0 обращение к свойствам, изначально не определённым в классе, будет приводить к ошибке (ErrorException). Классы, предоставляющие методы __get и __set для создания свойств, или динамические свойства в stdClass продолжат работать без изменений, прекратится поддержка только неявной работы с несуществующими свойствами для того чтобы защитить разработчика от скрытых ошибок. Для сохранения работы старого кода предложен атрибут «#[AllowDynamicProperties]», разрешающий использование динамических свойств.
  • Tá an cumas luachanna athróg a chur in ionad teaghráin ag baint úsáide as na sloinn "${var}" agus ${(var)} imithe as an áireamh. Coinníodh an tacaíocht do na hionadaigh "{$var}" agus "$var" a úsáidtear go coitianta. Mar shampla: "Dia duit {$world}"; OK "Dia duit $world"; OK "Dia duit ${world}"; Gan dul i léig: níl sé ceadaithe ${} a úsáid ina theaghráin
  • Glaoitear gutháin a dtacaítear go páirteach leo ar féidir glaoch orthu trí "call_user_func($callable)" ach ní thacaíonn glaoch i bhfoirm "$callable()": "self::method" "tuismitheoir::modh" "statach" ::modh " ["féin", "modh"] ["tuismitheoir", "modh"] ["statach", "modh"] ["Foo", "Bar::modh"] [nua Foo, "Bar: :modh" ]
  • В настройки добавлена директива error_log_mode, позволяющая определить режим доступа к логу с ошибками.

Foinse: oscailtenet.ru

Add a comment