PHP 8 ๋ฒ ํƒ€ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹œ์ž‘๋˜์—ˆ์Šต๋‹ˆ๋‹ค

๋„์ž… PHP 8 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์ƒˆ๋กœ์šด ๋ฒ„์ „์˜ ์ฒซ ๋ฒˆ์งธ ๋ฒ ํƒ€ ๋ฆด๋ฆฌ์Šค์ž…๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค๋Š” 26์›” 7.4.9์ผ๋กœ ์˜ˆ์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— PHP 7.3.21, XNUMX ๋ฐ
7.2.33์—์„œ๋Š” ๋ˆ„์ ๋œ ์˜ค๋ฅ˜์™€ ์ทจ์•ฝ์ ์„ ์ œ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์š” ํ˜์‹  PHP 8 :

  • ์ „์› ์ผœ๊ธฐ JIT ์ปดํŒŒ์ผ๋Ÿฌ, ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ƒ์‚ฐ์„ฑ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
  • ์ง€์› ๋ช…๋ช…๋œ ํ•จ์ˆ˜ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฆ„๊ณผ ๊ด€๋ จํ•˜์—ฌ ํ•จ์ˆ˜์— ๊ฐ’์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž„์˜์˜ ์ˆœ์„œ๋กœ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๊ณ  ์„ ํƒ์  ์ธ์ˆ˜๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "array_fill(start_index: 0, num: 100, value: 50)"์ž…๋‹ˆ๋‹ค.
  • ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ํ—ˆ์šฉ ๋œ "?" ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ˜ธ์ถœ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ "null" ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ๋ถˆํ•„์š”ํ•œ ๊ฒ€์‚ฌ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • ์ง€์› ๋…ธ๋™์กฐํ•ฉ ์ข…๋ฅ˜, ๋‘ ๊ฐœ ์ด์ƒ์˜ ์œ ํ˜• ์ปฌ๋ ‰์…˜์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: "public function 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(), XNUMX์œผ๋กœ ๋‚˜๋ˆŒ ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ๋‚˜๋ˆ„๊ธฐ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ณ€๊ฒฝ๋จ ๋ฌธ์ž์—ด ๊ฒฐํ•ฉ ๋…ผ๋ฆฌ. ์˜ˆ๋ฅผ ๋“ค์–ด 'echo "sum:" ํ‘œํ˜„์‹์ž…๋‹ˆ๋‹ค. $a + $b'๋Š” ์ด์ „์—๋Š” 'echo ("sum: " . $a) + $b'๋กœ ํ•ด์„๋˜์—ˆ์ง€๋งŒ PHP 8์—์„œ๋Š” 'echo "sum: " ์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ($a + $b)'.
  • ์กฐ์—ฌ์ง ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฐ์ˆ  ๋ฐ ๋น„ํŠธ ์—ฐ์‚ฐ์„ ํ™•์ธํ•˜๋ฉด "[] % [42]" ๋ฐ "$object + 4" ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
  • ๊ตฌํ˜„ ์—ฌ๋Ÿฌ ์‹คํ–‰์—์„œ ๋™์ผํ•œ ๊ฐ’์˜ ์ˆœ์„œ๊ฐ€ ์œ ์ง€๋˜๋Š” ์•ˆ์ •์ ์ธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.
  • ์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€