Tès beta nan PHP 8 te kòmanse

Entwodwi первый бета-выпуск новой ветки языка программирования PHP 8. Релиз намечен на 26 ноября. Одновременно сформированы корректирующие выпуски PHP 7.4.9, 7.3.21 и
7.2.33, в которых устранены накопившиеся ошибки и уязвимости.

Prensipal la inovasyon PHP 8:

  • Pouvwa moute JIT du, itilizasyon ki pral amelyore pwodiktivite.
  • Sipòte именованных аргументов функций, позволяющих передававать в функцию значения в привязке к именам, т.е. можно передавать аргументы в произвольном порядке и определять необязательные аргументы. Например, «array_fill(start_index: 0, num: 100, value: 50)».
  • При вызове методов pèmèt применение оператора «?», который позволяет инициировать вызов только, если метод присутствует, что позволяет избежать лишних проверок на возврат значения «null». Например, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
  • Sipòte kalite sendika yo, defini koleksyon de oswa plis kalite (pa egzanp, "fonksyon piblik foo(Foo|Bar $input): int|float;").
  • Sipòte atribi yo (anotasyon) ki pèmèt ou mare metadata (tankou enfòmasyon tip) nan klas yo san yo pa itilize sentaks Docblock.
  • Поддержка выражений matche ak, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания «break».

    $result = match($input) {
    0 => «hello»,
    ‘1’, ‘2’, ‘3’ => «world»,
    };

  • Sentaks ki pi kout definisyon klas, ki pèmèt ou konbine definisyon yon konstrukteur ak pwopriyete.
  • Nouvo kalite retounen - estatik.
  • Nouvo kalite - melanje, ki ka itilize pou detèmine si yon fonksyon aksepte paramèt diferan kalite.
  • Ekspresyon voye jete pou okipe eksepsyon yo.
  • WeakMap pou kreye objè ki ka sakrifye pandan koleksyon fatra (pa egzanp, pou estoke kachèt ki pa nesesè).
  • Posibilite lè l sèvi avèk ekspresyon "::class" pou objè (analòg ak rele get_class()).
  • Posibilite definisyon nan blòk la trape nan eksepsyon ki pa mare ak varyab.
  • Posibilite kite yon vigil apre dènye eleman nan lis paramèt fonksyon yo.
  • Nouvo koòdone Stringable pou idantifye nenpòt kalite fisèl oswa done ki ka konvèti nan yon fisèl (pou ki metòd la __toString() disponib).
  • Nouvo karakteristik str_contains(), yon analòg senplifye nan strpos pou detèmine ensidan an nan yon substring, osi byen ke fonksyon yo str_starts_with() ak str_ends_with() pou tcheke alimèt nan kòmansman ak nan fen yon fisèl.
  • Te ajoute fonksyon fdiv(), ki fè yon operasyon divizyon san yo pa voye yon erè lè divize pa zewo.
  • Chanje fisèl rantre lojik. Pou egzanp, ekspresyon 'echo "som:" . $a + $b' te deja entèprete kòm 'eko ("som: ". $a) + $b', epi nan PHP 8 yo pral trete kòm 'eko "som: ". ($a + $b)'.
  • Sere boulon tcheke operasyon aritmetik ak bit, pou egzanp, ekspresyon "[] ​​% [42]" ak "$objè + 4" ap lakòz yon erè.
  • Aplike yon algorithm klasman ki estab nan ki se lòd la nan valè ki idantik konsève atravè diferan kouri.
  • Sous: opennet.ru

Add nouvo kòmantè