ื‘ื“ื™ืงื•ืช ื‘ื˜ื ืฉืœ PHP 8 ื”ื—ืœื•

ืฉื”ื•ื’ืฉ ืขืœ ื™ื“ื™ ืžื”ื“ื•ืจืช ื”ื‘ื˜ื ื”ืจืืฉื•ื ื” ืฉืœ ื”ืกื ื™ืฃ ื”ื—ื“ืฉ ืฉืœ ืฉืคืช ื”ืชื›ื ื•ืช PHP 8. ื”ื”ืฉืงื” ืžืชื•ื›ื ื ืช ืœ-26 ื‘ื ื•ื‘ืžื‘ืจ. ื‘ืžืงื‘ื™ืœ, ืžื”ื“ื•ืจื•ืช ืžืชืงื ื•ืช ืฉืœ PHP 7.4.9, 7.3.21 ื•-
7.2.33, ืืฉืจ ื‘ื™ื˜ืœ ืฉื’ื™ืื•ืช ื•ื ืงื•ื“ื•ืช ืชื•ืจืคื” ืฉื”ืฆื˜ื‘ืจื•.

ื”ืขื™ืงืจื™ ื—ื™ื“ื•ืฉื™ื PHP 8:

  • ื”ื›ืœืœื” ืžื”ื“ืจ JIT, ืฉื”ืฉื™ืžื•ืฉ ื‘ื”ื ื™ืฉืคืจ ืืช ื”ืคืจื•ื“ื•ืงื˜ื™ื‘ื™ื•ืช.
  • ืชืžื™ื›ื” ืืจื’ื•ืžื ื˜ื™ื ืฉืœ ืคื•ื ืงืฆื™ื” ื‘ืฉื, ื”ืžืืคืฉืจื™ื ืœื”ืขื‘ื™ืจ ืขืจื›ื™ื ืœืคื•ื ืงืฆื™ื” ื‘ื™ื—ืก ืœืฉืžื•ืช, ื›ืœื•ืžืจ. ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืืจื’ื•ืžื ื˜ื™ื ื‘ื›ืœ ืกื“ืจ ื•ืœื”ื’ื“ื™ืจ ืืจื’ื•ืžื ื˜ื™ื ืื•ืคืฆื™ื•ื ืœื™ื™ื. ืœื“ื•ื’ืžื”, "array_fill(start_index: 0, num: 100, value: 50)".
  • ื›ืืฉืจ ืงื•ืจืื™ื ืœืฉื™ื˜ื•ืช ืžื•ืชืจ ืฉื™ืžื•ืฉ ื‘ืื•ืคืจื˜ื•ืจ "?", ื”ืžืืคืฉืจ ืœืš ืœื™ื–ื•ื ืฉื™ื—ื” ืจืง ืื ื”ืฉื™ื˜ื” ืงื™ื™ืžืช, ืžื” ืฉืžื•ื ืข ื‘ื“ื™ืงื•ืช ืžื™ื•ืชืจื•ืช ืœื”ื—ื–ืจืช ื”ืขืจืš "null". ืœื“ื•ื’ืžื”, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • ืชืžื™ื›ื” ืกื•ื’ื™ ืื™ื’ื•ื“ื™ื, ื”ื’ื“ืจืช ืื•ืกืคื™ื ืžืฉื ื™ ืกื•ื’ื™ื ืื• ื™ื•ืชืจ (ืœื“ื•ื’ืžื”, "ืคื•ื ืงืฆื™ื” ืฆื™ื‘ื•ืจื™ืช foo(Foo|Bar $input): int|float;").
  • ืชืžื™ื›ื” ืชื›ื•ื ื•ืช (ื”ืขืจื•ืช) ื”ืžืืคืฉืจื•ืช ืœืš ืœืื’ื“ ืžื˜ื ื ืชื•ื ื™ื (ื›ื’ื•ืŸ ืžื™ื“ืข ืขืœ ืกื•ื’ื™ื) ืœืžื—ืœืงื•ืช ืžื‘ืœื™ ืœื”ืฉืชืžืฉ ื‘ืชื—ื‘ื™ืจ Docblock.
  • ืชืžื™ื›ื” ื‘ื”ื‘ืขื” ืœื”ืชืื™ื, ืฉื‘ื ื™ื’ื•ื“ ืœืกื•ื•ื™ืฅ', ื™ื›ื•ืœ ืœื”ื—ื–ื™ืจ ืขืจื›ื™ื, ืœืชืžื•ืš ื‘ืฉื™ืœื•ื‘ ืชื ืื™ื, ืœื”ืฉืชืžืฉ ื‘ื”ืฉื•ื•ืื•ืช ื˜ื™ืคื•ืกื™ื ืงืคื“ื ื™ื•ืช, ื•ืื™ื ื• ื“ื•ืจืฉ ืžืคืจื˜ "ื”ืคืกืง".

    $result = match($input) {
    0 => "ืฉืœื•ื",
    '1', '2', '3' => "ืขื•ืœื",
    };

  • ืชื—ื‘ื™ืจ ืžืงื•ืฆืจ ื”ื’ื“ืจื•ืช ืžื—ืœืงื•ืช, ื”ืžืืคืฉืจื•ืช ืœืš ืœืฉืœื‘ ืืช ื”ื”ื’ื“ืจื” ืฉืœ ื‘ื ืื™ ื•ืžืืคื™ื™ื ื™ื.
  • ืกื•ื’ ื”ื—ื–ืจื” ื—ื“ืฉ - ืกื˜ื˜ื™.
  • ืกื•ื’ ื—ื“ืฉ - ืžืขื•ืจื‘, ืฉื‘ื• ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื›ื“ื™ ืœืงื‘ื•ืข ืื ืคื•ื ืงืฆื™ื” ืžืงื‘ืœืช ืคืจืžื˜ืจื™ื ืžืกื•ื’ื™ื ืฉื•ื ื™ื.
  • ื‘ื™ื˜ื•ื™ ืœื–ืจื•ืง ืœื˜ืคืœ ื‘ื—ืจื™ื’ื™ื.
  • ืžืคื” ื—ืœืฉื” ืœื™ืฆื•ืจ ื—ืคืฆื™ื ืฉื ื™ืชืŸ ืœื”ืงืจื™ื‘ ื‘ืžื”ืœืš ืื™ืกื•ืฃ ื”ืืฉืคื” (ืœืžืฉืœ, ืœืื—ืกืŸ ืžื˜ืžื•ื ื™ื ืžื™ื•ืชืจื™ื).
  • ื”ื–ื“ืžื ื•ืช ืฉื™ืžื•ืฉ ื‘ื‘ื™ื˜ื•ื™ "::class" ืขื‘ื•ืจ ืื•ื‘ื™ื™ืงื˜ื™ื (ื‘ื“ื•ืžื” ืœืงืจื™ืื” get_class()).
  • ื”ื–ื“ืžื ื•ืช ื”ื’ื“ืจื•ืช ื‘ื’ื•ืฉ ื”-catch ืฉืœ ื—ืจื™ื’ื™ื ืฉืื™ื ื ืงืฉื•ืจื™ื ืœืžืฉืชื ื™ื.
  • ื”ื–ื“ืžื ื•ืช ื”ืฉืืจืช ืคืกื™ืง ืื—ืจื™ ื”ืืœืžื ื˜ ื”ืื—ืจื•ืŸ ื‘ืจืฉื™ืžืช ื”ืคืจืžื˜ืจื™ื ืฉืœ ื”ืคื•ื ืงืฆื™ื”.
  • ืžืžืฉืง ื—ื“ืฉ ื ื™ืชืŸ ืœืžื™ืชืจ ืœื–ื”ื•ืช ื›ืœ ืกื•ื’ื™ ืžื—ืจื•ื–ืช ืื• ื ืชื•ื ื™ื ืฉื ื™ืชืŸ ืœื”ืžื™ืจ ืœืžื—ืจื•ื–ืช (ืฉืขื‘ื•ืจื” ื”ืฉื™ื˜ื” __toString() ื–ืžื™ื ื”).
  • ืชื›ื•ื ื” ื—ื“ืฉื” str_contains(), ืื ืœื•ื’ื™ ืคืฉื•ื˜ ืฉืœ strpos ืœืงื‘ื™ืขืช ื”ืชืจื—ืฉื•ืช ืฉืœ ืžื—ืจื•ื–ืช ืžืฉื ื”, ื›ืžื• ื’ื ื”ืคื•ื ืงืฆื™ื•ืช str_starts_with() ื•-str_ends_with() ืœื‘ื“ื™ืงืช ื”ืชืืžื•ืช ื‘ืชื—ื™ืœืช ืžื—ืจื•ื–ืช ื•ื‘ืกื•ืฃ.
  • ื ื•ืกืคื” ืคื•ื ืงืฆื™ื” fdiv(), ืฉืžื‘ืฆืข ืคืขื•ืœืช ื—ืœื•ืงื” ืžื‘ืœื™ ืœื–ืจื•ืง ืฉื’ื™ืื” ื‘ืขืช ื—ืœื•ืงื” ื‘ืืคืก.
  • ื”ืฉืชื ื” ืœื•ื’ื™ืงื” ืฉืœ ื—ื™ื‘ื•ืจ ืžื—ืจื•ื–ืช. ืœื“ื•ื’ืžื”, ื”ื‘ื™ื˜ื•ื™ 'ื”ื“ "ืกื›ื•ื:" . $a + $b' ืคื•ืจืฉื• ื‘ืขื‘ืจ ื›-'echo ("sum: ". $a) + $b', ื•ื‘-PHP 8 ื™ื˜ื•ืคืœื• ื›-'echo "sum: ". ($a + $b)'.
  • ื”ื™ื“ืง ื‘ื“ื™ืงืช ืคืขื•ืœื•ืช ืืจื™ืชืžื˜ื™ื•ืช ื•ืกื™ื‘ื™ื•ืช, ืœืžืฉืœ, ื”ื‘ื™ื˜ื•ื™ื™ื "[] % [42]" ื•-"$object + 4" ื™ื’ืจืžื• ืœืฉื’ื™ืื”.
  • ืžื•ื˜ืžืข ืืœื’ื•ืจื™ืชื ืžื™ื•ืŸ ื™ืฆื™ื‘ ืฉื‘ื• ืกื“ืจ ื”ืขืจื›ื™ื ื”ื–ื”ื™ื ื ืฉืžืจ ืขืœ ืคื ื™ ืจื™ืฆื•ืช ืฉื•ื ื•ืช.
  • ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”