ืžืขืœื“ื•ื ื’ ืคื•ืŸ PHP 8.3 ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš

ื ืึธืš ืึท ื™ืึธืจ ืคื•ืŸ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ื“ื™ ืžืขืœื“ื•ื ื’ ืคื•ืŸ ื“ื™ PHP 8.3 ืคึผืจืึธื’ืจืึทืžืžื™ื ื’ ืฉืคึผืจืึทืš ืื™ื– ื’ืขื•ื•ืขืŸ ื“ืขืจืœืื ื’ื˜. ื“ื™ ื ื™ื™ึทืข ืฆื•ื•ื™ื™ึทื’ ื›ื•ืœืœ ืึท ืกืขืจื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื ื™ื™ึท ืคึฟืขื™ึดืงื™ื™ื˜ืŸ, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ืขื˜ืœืขื›ืข ืขื ื“ืขืจื•ื ื’ืขืŸ ื•ื•ืึธืก ื‘ืจืขื›ืŸ ืงืึทืžืคึผืึทื˜ืึทื‘ื™ืœืึทื˜ื™.

ืฉืœื™ืกืœ ืขื ื“ืขืจื•ื ื’ืขืŸ ืื™ืŸ PHP 8.3:

  • ื‘ืขืฉืึทืก ืงืœืึทืก ืงืœืึธื•ื ื™ื ื’, ืขืก ืื™ื– ืžืขื’ืœืขืš ืฆื• ืจื™ื™ื ืกื˜ืึทืœื™ื–ื™ืจืŸ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืžื™ื˜ ื“ื™ "ืœื™ื™ืขื ืขืŸ" ืึทื˜ืจื™ื‘ื™ื•ื˜. ืึธื•ื•ืขืจืจื™ื“ื™ื ื’ ืœื™ื™ืขื -ื‘ืœื•ื™ื– ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืื™ื– ืขืจืœื•ื™ื‘ื˜ ื‘ืœื•ื™ื– ื™ืŸ ื“ืขืจ "__ืงืœืึธื ืข" ืคึฟื•ื ืงืฆื™ืข: ืœื™ื™ืขื ืขืŸ ื‘ืœื•ื™ื– ืงืœืึทืก ืคึผืึธืกื˜ {ืคึผื•ื‘ืœื™ืง ืคึฟื•ื ืงืฆื™ืข __ืงืึทื ืกื˜ืจืึทืงื˜ (ืคึผื•ื‘ืœื™ืง DateTime $createdAt,) {} ืฆื™ื‘ื•ืจ ืคึฟื•ื ืงืฆื™ืข __clone() {$this->createdAt = new DateTime(); // ืขืจืœื•ื™ื‘ื˜ ืืคื™ืœื• ื›ืึธื˜ืฉ ื“ื™ "createdAt" ืคืึทืจืžืึธื’ ืื™ื– ืœื™ื™ืขื ืขืŸ-ื‘ืœื•ื™ื–. } }
  • ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ื ื•ืฆืŸ ืงืึทื ืกื˜ืึทื ืฅ ืžื™ื˜ ื˜ื™ืคึผ ืึธื ื•ื•ื™ื™ึทื– ืื™ืŸ ืงืœืืกืŸ, ื˜ืจื™ื™ืฅ ืื•ืŸ ื™ื ื•ืžืขืจื™ื™ืฉืึทื ื– ืื™ื– ืฆื•ื’ืขืฉื˜ืขืœื˜: ืงืœืึทืก Foo {const string BAR = 'baz'; }
  • ืฆื•ื’ืขื’ืขื‘ืŸ ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ื“ื™ "#[ืึธื•ื•ืขืจืจื™ื™ื“]" ืึทื˜ืจื™ื‘ื™ื•ื˜, ืžื™ื˜ ื•ื•ืึธืก ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืงืขื ืขืŸ ืžื™ื˜ื˜ื™ื™ืœืŸ ื“ืขื ื™ื‘ืขืจื–ืขืฆืขืจ ืึทื– ื“ื™ ืื ื’ืขืฆื™ื™ื›ื ื˜ ืื•ืคึฟืŸ ืึธื•ื•ื•ืขืจืจื™ื™ื“ื– ืขื˜ืœืขื›ืข ืคืึธื˜ืขืจ ืื•ืคึฟืŸ. ืื•ื™ื‘ ืขืก ืื™ื– ืงื™ื™ืŸ ืึธื•ื•ื•ืขืจืจื™ื™ื“, ื“ืขืจ ื™ื‘ืขืจื–ืขืฆืขืจ ื•ื•ืขื˜ ื•ื•ื™ื™ึทื–ืŸ ืึท ื˜ืขื•ืช.
  • ื’ืขืขื ื“ืขืจื˜ ื”ืึทื ื“ืœื™ื ื’ ืคื•ืŸ ื ืขื’ืึทื˜ื™ื•ื• ื•ื•ืึทืœื•ืขืก ื•ื•ื™ ืึท ืžืขื ื’ืข ืื™ื ื“ืขืงืก. ืคึฟืึทืจ ื‘ื™ื™ึทืฉืคึผื™ืœ, ื•ื•ืขืŸ ืึทื“ื™ื ื’ ืึทืŸ ืขืœืขืžืขื ื˜ ืžื™ื˜ ื ื•ืžืขืจ "-5" ืฆื• ืึท ืœื™ื™ื“ื™ืง ืžืขื ื’ืข ืื•ืŸ ืึทื“ื™ื ื’ ืืŸ ืื ื“ืขืจ ืขืœืขืžืขื ื˜, ื‘ื™ื– ืึทื”ืขืจ, ื“ื™ ืจื’ืข ืขืœืขืžืขื ื˜ ืื™ื– ื’ืขืจืื˜ืขื•ื•ืขื˜ ืžื™ื˜ ืื™ื ื“ืขืงืก "0", ืึธื‘ืขืจ ืกื˜ืึทืจื˜ื™ื ื’ ืคึฟื•ืŸ ื•ื•ืขืจืกื™ืข PHP 8.3 ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขืจืื˜ืขื•ื•ืขื˜ ืžื™ื˜ ืื™ื ื“ืขืงืก "-4" . $ ืžืขื ื’ืข = []; $array [-5] = 'ืึท'; $array[] = 'ื‘'; ื•ื•ืึทืจ_ืขืงืกืคึผืึธืจื˜ ($ ืžืขื ื’ืข); // ืื™ื– ืžืขื ื’ืข (-5 => 'ืึท', 0 => 'ื‘') // ื’ืขื•ื•ืืจืŸ ืžืขื ื’ืข (-5 => 'ืึท', -4 => 'ื‘')
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฉืึทืคึฟืŸ ืึทื ืึธื ื™ืžืข ื‘ืึทื ื•ืฆืขืจืก ืงืœืืกืŸ ืื™ืŸ ืœื™ื™ืขื ืขืŸ-ื‘ืœื•ื™ื– ืžืึธื“ืข: $ ืงืœืึทืก = ื ื™ื™ึท ืœื™ื™ืขื ืขืŸ-ืึธื ืœื™ ืงืœืึทืก { ืฆื™ื‘ื•ืจ ืคึฟื•ื ืงืฆื™ืข __ืงืึทื ืกื˜ืจืึทืงื˜ (ืคึผื•ื‘ืœื™ืง ืฉื˜ืจื™ืงืœ $ ืคืึธืึธ = 'ื‘ืึทืจ',) {}};
  • ืฆื•ื’ืขื’ืขื‘ืŸ json_validate () ืคึฟื•ื ืงืฆื™ืข ืฆื• ื’ืขืฉื•ื•ื™ื ื“ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืื•ื™ื‘ ืึท ืฉื˜ืจื™ืงืœ ืื™ื– ืื™ืŸ JSON ืคึฟืึธืจืžืึทื˜ ืึธืŸ ื“ื•ืจื›ืคื™ืจืŸ ื“ื™ืงืึธื•ื“ื™ื ื’ ืึทืคึผืขืจื™ื™ืฉืึทื ื–. json_validate (ืฉื˜ืจื™ืงืœ $ json, int $ depth = 512, int $ ืคืœืึทื’ืก = 0): bool
  • ื ื™ื• ืžืขื˜ื”ืึธื“ืก ื–ืขื ืขืŸ ืฆื•ื’ืขื’ืขื‘ืŸ ืฆื• ื“ื™ ืจืึทื ื“ืึธืžื™ื–ืขืจ ืงืœืึทืก, ื•ื•ืึธืก ื’ื™ื˜ ืึท ื”ื•ื™ืš-ืžื“ืจื’ื” API ืคึฟืึทืจ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืคึผืกืขื•ื•ื“ืึธ-ืจืึทื ื“ืึธื ื ื•ืžืขืจืŸ ืื•ืŸ ืกื™ืงื•ื•ืึทื ืกื™ื–: getBytesFromString ืคึฟืึทืจ ื“ื–ืฉืขื ืขืจื™ื™ื˜ื™ื ื’ ืึท ืฉื˜ืจื™ืงืœ ืคื•ืŸ ืึท ื’ืขื’ืขื‘ืŸ ื’ืจื™ื™ืก, ื ื™ืฆืŸ ืื™ืŸ ื˜ืจืึทืค - ืกื“ืจ ื“ื™ ืื•ืชื™ื•ืช ืคืึธืจืฉื˜ืขืœืŸ ืื™ืŸ ืืŸ ืื ื“ืขืจ ืฉื˜ืจื™ืงืœ; getFloat ืื•ืŸ NextFloat ืฆื• ื“ื–ืฉืขื ืขืจื™ื™ื˜ ืึท ืจืึทื ื“ืึธื ืคืœืึธื•ื˜ื™ื ื’ ืคื•ื ื˜ ื ื•ืžืขืจ ื•ื•ืึธืก ืคืึทืœืŸ ืื™ืŸ ื“ื™ ืกืคึผืขืกื™ืคื™ืขื“ ืงื™ื™ื˜.
  • ืฆื•ื’ืขื’ืขื‘ืŸ ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืฆื•ืจื™ืงืงืจื™ื’ืŸ ืงืึทื ืกื˜ืึทื ืฅ ื ื™ืฆืŸ ื“ื™ื ืึทืžื™ืฉ ืงืœืึทืก ืกื™ื ื˜ืึทืงืก: ืงืœืึทืก Foo {const BAR = 'ื‘ืึทืจ'; } $ ื ืึธืžืขืŸ = 'BAR'; // ื‘ื™ื– ืึทื”ืขืจ, ืฆื• ืฆื•ืจื™ืงืงืจื™ื’ืŸ ื“ื™ BAR ืงืขืกื™ื™ื“ืขืจื“ื™ืง, ืื™ืจ ื”ืื˜ ืฆื• ืจื•ืคืŸ ืงืขืกื™ื™ื“ืขืจื“ื™ืง (ืคืึธืึธ:: ืงืœืึทืก . '::'. $ ื ืึธืžืขืŸ); // ืื™ืฆื˜ ื ืึธืจ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ Foo::{$ ื ืึธืžืขืŸ};
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื“ื•ืจ ืคื•ืŸ ื™ื—ื™ื“ ืื•ื™ืกื ืขืžืขืŸ (DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError) ืื™ืŸ ืคืึทืœ ืคื•ืŸ ืคึผืจืึธื‘ืœืขืžืก ืขืจื™ื™ื–ื™ื ื’ ืื™ืŸ ืึทืคึผืขืจื™ื™ืฉืึทื ื– ืืจื‘ืขื˜ืŸ ืžื™ื˜ ื“ืึทื˜ืขืก ืื•ืŸ ืฆื™ื™ื˜.
  • ื™ืžืคึผืจื•ื•ื•ื“ ื”ืึทื ื“ืœื™ื ื’ ืคื•ืŸ ืขืจืจืึธืจืก ื•ื•ืึธืก ืคืึทืœืŸ ื‘ืขืฉืึทืก ืคึผืึทืจืกื™ื ื’ ืคื•ืŸ ืกื™ืจื™ืึทืœื™ื–ืขื“ ื“ืึทื˜ืŸ ืื™ืŸ ื“ื™ ื•ื ืกืขืจื™ืึทืœื™ื–ืข () ืคึฟื•ื ืงืฆื™ืข. ืื™ืŸ ืคืึทืœ ืคื•ืŸ ืคึผืจืึธื‘ืœืขืžืก, ื•ื ืกืขืจื™ืึทืœื™ื–ืข () ืื™ืฆื˜ ืึทืจื•ื™ืกื’ืขื‘ืŸ E_WARNING ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ E_NOTICE.
  • ืขื ื“ืขืจื•ื ื’ืขืŸ ื–ืขื ืขืŸ ื’ืขืžืื›ื˜ ืฆื• ื“ื™ ืงื™ื™ื˜ () ืคึฟื•ื ืงืฆื™ืข. ืึท ื•ื™ืกื ืขื ืื™ื– ื“ื–ืฉืขื ืขืจื™ื™ื˜ืึทื“ ื•ื•ืขืŸ ืคึผืจื•ื•ื•ืŸ ืฆื• ืคืึธืจืŸ ืึทื‘ื“ื–ืฉืขืงืฅ, ืจืขืกื•ืจืกืŸ ืึธื“ืขืจ ืขืจื™ื™ื– ืื™ืŸ ื•ื•ืขืจื™ืึทื‘ืึทืœื– ื•ื•ืึธืก ื“ืขืคื™ื ื™ืจืŸ ืงื™ื™ื˜ ื‘ืึทื•ื ื“ืจื™ื–, ื•ื•ื™ ื’ืขื–ื•ื ื˜ ื•ื•ื™ ื•ื•ืขืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืึท ื ืขื’ืึทื˜ื™ื•ื• ื•ื•ืขืจื˜ ืื™ืŸ ื“ื™ $ ืกื˜ืขืคึผ ืคึผืึทืจืึทืžืขื˜ืขืจ ืึธื“ืขืจ ืึทืŸ ืึทื ื“ื™ืคื™ื™ื ื“ ื•ื•ืขืจื˜ ืื™ืŸ ืงื™ื™ืŸ ืคึผืึทืจืึทืžืขื˜ืขืจ. ื ืจืฉื™ืžื” ืคื•ืŸ ืื•ืชื™ื•ืช ืงืขื ืขืŸ ืื™ืฆื˜ ื–ื™ื™ืŸ ืจืขื–ื•ืœื˜ืึทื˜ ื•ื•ืขืŸ ืกืคึผืขืฆื™ืคื™ืฆื™ืจืŸ ืกื˜ืจื™ื ื’ืก ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ ื ื•ืžืขืจืŸ (ืœืžืฉืœ, "ืงื™ื™ื˜ ('5', 'ื–')").
  • ื˜ืฉื™ื™ื ื“ื–ืฉื“ ื“ื™ ื ืึทื˜ื•ืจ ืคื•ืŸ ื˜ืจื™ื™ืฅ ืžื™ื˜ ืกื˜ืึทื˜ื™ืง ืคึผืจืึธืคึผืขืจื˜ื™ืขืก, ื•ื•ืึธืก ืื™ืฆื˜ ืึธื•ื•ื•ืขืจืจื™ื™ื“ ืกื˜ืึทื˜ื™ืง ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ื™ื ื›ืขืจืึทื˜ื™ื“ ืคื•ืŸ ื“ื™ ืคืึธื˜ืขืจ ืงืœืึทืก.
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ืกืขื˜ื˜ื™ื ื’ืก ืคึฟืึทืจ ืึธื ืœื™ื™ื’ืŸ ืึธื•ื•ื•ืขืจืคืœืึธื• ืฉื•ืฅ. ื“ื™ zend.max_allowed_stack_size ืื•ืŸ zend.reserved_stack_size ื“ื™ื™ืจืขืงื˜ื™ื•ื•ื– ื”ืึธื‘ืŸ ืฉื•ื™ืŸ ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• ื“ื™ ื™ื ื™ ื˜ืขืงืข, ื“ื™ืคื™ื™ื ื™ื ื’ ื“ื™ ืžืึทืงืกื™ืžื•ื ืขืจืœื•ื™ื‘ื˜ ืื•ืŸ ืจืขื–ืขืจื•ื•ื™ืจื˜ ืึธื ืœื™ื™ื’ืŸ ื’ืจื™ื™ืก. ื“ืขืจ ืคึผืจืึธื’ืจืึทื ื•ื•ืขื˜ ืงืจืึทืš ื•ื•ืขืŸ ืึทืคึผืจืึธื•ื˜ืฉื˜ ืกื˜ืึทืง ื™ื’ื–ืึธืกื˜ืฉืึทืŸ, ื•ื•ืขืŸ ื“ืขืจ ืึธื ืœื™ื™ื’ืŸ ืื™ื– ืคื•ืœ ืžืขืจ ื•ื•ื™ ื“ื™ ื—ื™ืœื•ืง ืฆื•ื•ื™ืฉืŸ zend.max_allowed_stack_size ืื•ืŸ zend.reserved_stack_size (ื“ื•ืจื›ืคื™ืจื•ื ื’ ื•ื•ืขื˜ ื”ืึทืœื˜ืŸ ืื™ื™ื“ืขืจ ืึท ืกืขื’ืžืึทื ื˜ื™ื™ืฉืึทืŸ ืฉื•ืœื“ ืึทืงืขืจื–). ื“ื•ืจืš ืคืขืœื™ืงื™ื™ึทื˜, ื“ื™ zend.max_allowed_stack_size ื•ื•ืขืจื˜ ืื™ื– ื‘ืึทืฉื˜ื™ืžื˜ ืฆื• 0 (0-ื“ื™ ื’ืจื™ื™ืก ืื™ื– ื‘ืืฉืœืืกืŸ ืื•ื™ื˜ืึธืžืึทื˜ื™ืฉ; ืฆื• ื“ื™ืกื™ื™ื‘ืึทืœ ื“ื™ ื‘ืึทื’ืจืขื ืขืฆื•ื ื’, ืื™ืจ ืงืขื ืขืŸ ืฉื˜ืขืœืŸ ืขืก ืฆื• -1).
  • ืฆื•ื’ืขืœื™ื™ื’ื˜ ื ื™ื™ึท POSIX ืคืึทื ื’ืงืฉืึทื ื– posix_sysconf(), posix_pathconf(), posix_fpathconf() ืื•ืŸ posix_eaccess().
  • ื“ื™ mb_str_pad ืคึฟื•ื ืงืฆื™ืข ืื™ื– ืฆื•ื’ืขื’ืขื‘ืŸ, ื•ื•ืึธืก ืื™ื– ืึทืŸ ืึทื ืึทืœืึธื’ ืคื•ืŸ ื“ื™ str_pad () ืฉื˜ืจื™ืงืœ ืคึฟื•ื ืงืฆื™ืข, ื“ื™ื–ื™ื™ื ื“ ืฆื• ืึทืจื‘ืขื˜ืŸ ืžื™ื˜ ืžื•ืœื˜ื™-ื‘ื™ื˜ืข ืงืึธื“ื™ืจื•ื ื’ ืึทื–ืึท ื•ื•ื™ UTF-8.
  • ืึทืœืึทื•ื– ืื™ืจ ืฆื• ืฉืึทืคึฟืŸ ืงืœืึธื•ื–ืฉืขืจื– ืคื•ืŸ ืžืขื˜ื”ืึธื“ืก ืื•ืŸ ืคืึธืจืŸ ื’ืขืจื•ืคึฟืŸ ืึทืจื’ื•ืžืขื ื˜ืŸ ืฆื• ื“ื™ ืงืœืึธื•ื–ืฉืขืจื–. $ ื˜ืขืกื˜ = ื ื™ื™ึท ื˜ืขืกื˜ (); $ ืงืœืึธื•ื–ืฉืขืจ = $ ืคึผืจื•ื‘ื™ืจืŸ-> ืžืึทื’ื™ืฉ (...); $ ืงืœืึธื•ื–ืฉืขืจ (ืึท: 'ื”ืขืœื', ื‘: 'ื•ื•ืขืœื˜');
  • ื’ืขื‘ื™ื˜ืŸ ื ืึทื˜ื•ืจ ื•ื•ืขืŸ ื”ืึทื ื“ืœื™ื ื’ ื“ื™ ื•ื•ื™ื–ืึทื‘ื™ืœื™ื˜ื™ ืคื•ืŸ ืงืึทื ืกื˜ืึทื ืฅ ืื™ืŸ ื™ื ื˜ืขืจืคื™ื™ืกื™ื–. ืฆื•ื‘ื™ื ื“ ืื™ืš {ืคึผื•ื‘ืœื™ืง ืงืึธื ืกื˜ ืคืึธืึธ = 'ืคื•'; } ืงืœืึทืก C ื™ืžืคึผืœืึทืžืึทื ืฅ ืื™ืš { ืคึผืจื™ื•ื•ืึทื˜ ืงืึธื ืกื˜ ืคืึธืึธ = 'ืคืึธืึธ'; }
  • ื“ื™ ืงื™ื™ืคึผืึทื‘ื™ืœืึทื˜ื™ื– ืคื•ืŸ ื“ื™ array_sum(), array_product(), posix_getrlimit(), gc_status(), class_alias(), mysqli_poll(), array_pad() ืื•ืŸ proc_get_status() ืคืึทื ื’ืงืฉืึทื ื– ื–ืขื ืขืŸ ื™ืงืกืคึผืึทื ื“ื™ื“.
  • ื“ื™ ืคื™ื™ื™ืงื™ื™ื˜ ืฆื• ืคืึธืจืŸ ืึท ื ืขื’ืึทื˜ื™ื•ื• $ ื•ื•ื™ื“ื˜ืก ื•ื•ืขืจื˜ ืฆื• mb_strimwidth () ืื™ื– ื“ื™ืคึผืจื™ืฉื™ื™ื™ื˜ื™ื“. ื“ื™ ื ื•ืžืขืจืคืึธืจืžืึทื˜ื˜ืขืจ::TYPE_CURRENCY ืงืขืกื™ื™ื“ืขืจื“ื™ืง ืื™ื– ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ. ืฉื˜ื™ืฆืŸ ืคึฟืึทืจ ืจื•ืคืŸ ื“ื™ ldap_connect() ืคึฟื•ื ืงืฆื™ืข ืžื™ื˜ ืฆื•ื•ื™ื™ ืคึผืึทืจืึทืžืขื˜ืขืจืก $ ื”ืึธืกื˜ ืื•ืŸ $ ืคึผืึธืจื˜ ืื™ื– ืึธืคึผื’ืขืฉื˜ืขืœื˜. ื“ื™ ืึธืคึผcache.consistency_checks ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ืื™ื– ืึทื•ื•ืขืงื’ืขื ื•ืžืขืŸ.

ืžืงื•ืจ: opennet.ru

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’