PHP 8.3 ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ

ಒಂದು ವರ್ಷದ ಅಭಿವೃದ್ಧಿಯ ನಂತರ, PHP 8.3 ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲಾಯಿತು. ಹೊಸ ಶಾಖೆಯು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳ ಸರಣಿಯನ್ನು ಒಳಗೊಂಡಿದೆ, ಜೊತೆಗೆ ಹೊಂದಾಣಿಕೆಯನ್ನು ಮುರಿಯುವ ಹಲವಾರು ಬದಲಾವಣೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.

PHP 8.3 ನಲ್ಲಿ ಪ್ರಮುಖ ಬದಲಾವಣೆಗಳು:

  • ಕ್ಲಾಸ್ ಕ್ಲೋನಿಂಗ್ ಸಮಯದಲ್ಲಿ, "ಓದಲು ಮಾತ್ರ" ಗುಣಲಕ್ಷಣದೊಂದಿಗೆ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಮರುಪ್ರಾರಂಭಿಸಲು ಸಾಧ್ಯವಿದೆ. "__clone" ಕಾರ್ಯದ ಒಳಗೆ ಮಾತ್ರ ಓದಲು ಮಾತ್ರ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಅತಿಕ್ರಮಿಸಲು ಅನುಮತಿಸಲಾಗಿದೆ: ಓದಲು ಮಾತ್ರ ವರ್ಗ ಪೋಸ್ಟ್ {ಸಾರ್ವಜನಿಕ ಕಾರ್ಯ __ನಿರ್ಮಾಣ (ಸಾರ್ವಜನಿಕ ದಿನಾಂಕದ ಸಮಯ $createdAt, ) {} ಸಾರ್ವಜನಿಕ ಕಾರ್ಯ __clone() {$this->createdAt = ಹೊಸ ದಿನಾಂಕ ಸಮಯ(); // "createdAt" ಆಸ್ತಿಯನ್ನು ಓದಲು ಮಾತ್ರ ಅನುಮತಿಸಲಾಗಿದೆ. } }
  • ವರ್ಗಗಳು, ಗುಣಲಕ್ಷಣಗಳು ಮತ್ತು ಎಣಿಕೆಗಳಲ್ಲಿ ಪ್ರಕಾರದ ಸೂಚನೆಯೊಂದಿಗೆ ಸ್ಥಿರಾಂಕಗಳನ್ನು ಬಳಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸಲಾಗಿದೆ: ವರ್ಗ ಫೂ {ಕಾನ್ಸ್ಟ್ ಸ್ಟ್ರಿಂಗ್ BAR = 'ಬಾಜ್'; }
  • “#[ಓವರ್‌ರೈಡ್]” ಗುಣಲಕ್ಷಣಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಅದರೊಂದಿಗೆ ಡೆವಲಪರ್ ಗುರುತಿಸಿದ ವಿಧಾನವು ಕೆಲವು ಮೂಲ ವಿಧಾನವನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ ಎಂದು ಇಂಟರ್‌ಪ್ರಿಟರ್‌ಗೆ ತಿಳಿಸಬಹುದು. ಯಾವುದೇ ಅತಿಕ್ರಮಣ ಇಲ್ಲದಿದ್ದರೆ, ಇಂಟರ್ಪ್ರಿಟರ್ ದೋಷವನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತಾನೆ.
  • ಅರೇ ಸೂಚ್ಯಂಕವಾಗಿ ನಕಾರಾತ್ಮಕ ಮೌಲ್ಯಗಳ ನಿರ್ವಹಣೆಯನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ, ಖಾಲಿ ರಚನೆಗೆ "-5" ಸಂಖ್ಯೆಯೊಂದಿಗೆ ಅಂಶವನ್ನು ಸೇರಿಸುವಾಗ ಮತ್ತು ಇನ್ನೊಂದು ಅಂಶವನ್ನು ಸೇರಿಸುವಾಗ, ಹಿಂದೆ ಎರಡನೇ ಅಂಶವನ್ನು "0" ಸೂಚ್ಯಂಕದೊಂದಿಗೆ ಉಳಿಸಲಾಗಿದೆ, ಆದರೆ PHP 8.3 ಆವೃತ್ತಿಯಿಂದ ಪ್ರಾರಂಭಿಸಿ ಅದನ್ನು "-4" ಸೂಚ್ಯಂಕದೊಂದಿಗೆ ಉಳಿಸಲಾಗುತ್ತದೆ. . $ಅರೇ = []; $array[-5] = 'a'; $array[] = 'b'; var_export($array); // ವ್ಯೂಸ್ ಅರೇ (-5 => 'ಎ', 0 => 'ಬಿ') // ಅರೇ ಆಯಿತು (-5 => 'ಎ', -4 => 'ಬಿ')
  • ಓದಲು-ಮಾತ್ರ ಕ್ರಮದಲ್ಲಿ ಅನಾಮಧೇಯ ತರಗತಿಗಳನ್ನು ರಚಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ: $class = ಹೊಸ ಓದಲು ಮಾತ್ರ ವರ್ಗ {ಸಾರ್ವಜನಿಕ ಕಾರ್ಯ __ಕನ್ಸ್ಟ್ರಕ್ಟ್(ಸಾರ್ವಜನಿಕ ಸ್ಟ್ರಿಂಗ್ $foo = 'ಬಾರ್', ) {}};
  • ಡಿಕೋಡಿಂಗ್ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ನಿರ್ವಹಿಸದೆಯೇ ಸ್ಟ್ರಿಂಗ್ JSON ಸ್ವರೂಪದಲ್ಲಿದೆಯೇ ಎಂದು ತ್ವರಿತವಾಗಿ ಪರಿಶೀಲಿಸಲು json_validate() ಕಾರ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. json_validate(string $json, int $depth = 512, int $flags = 0): bool
  • ಹೊಸ ವಿಧಾನಗಳನ್ನು Randomizer ವರ್ಗಕ್ಕೆ ಸೇರಿಸಲಾಗಿದೆ, ಇದು ಹುಸಿ-ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆಗಳು ಮತ್ತು ಅನುಕ್ರಮಗಳನ್ನು ಉತ್ಪಾದಿಸಲು ಉನ್ನತ-ಮಟ್ಟದ API ಅನ್ನು ಒದಗಿಸುತ್ತದೆ: ಮತ್ತೊಂದು ಸ್ಟ್ರಿಂಗ್‌ನಲ್ಲಿರುವ ಅಕ್ಷರಗಳನ್ನು ಯಾದೃಚ್ಛಿಕ ಕ್ರಮದಲ್ಲಿ ಬಳಸಿಕೊಂಡು ನೀಡಿದ ಗಾತ್ರದ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಉತ್ಪಾದಿಸಲು getBytesFromString; ನಿಗದಿತ ವ್ಯಾಪ್ತಿಯೊಳಗೆ ಬರುವ ಯಾದೃಚ್ಛಿಕ ಫ್ಲೋಟಿಂಗ್ ಪಾಯಿಂಟ್ ಸಂಖ್ಯೆಯನ್ನು ಉತ್ಪಾದಿಸಲು getFloat ಮತ್ತು nextFloat.
  • ಡೈನಾಮಿಕ್ ಕ್ಲಾಸ್ ಸಿಂಟ್ಯಾಕ್ಸ್ ಬಳಸಿ ಸ್ಥಿರಾಂಕಗಳನ್ನು ಹಿಂಪಡೆಯುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ: ವರ್ಗ ಫೂ {ಕಾನ್ಸ್ಟ್ ಬಾರ್ = 'ಬಾರ್'; } $ಹೆಸರು = 'ಬಾರ್'; // ಹಿಂದೆ, BAR ಸ್ಥಿರತೆಯನ್ನು ಹಿಂಪಡೆಯಲು, ನೀವು ಸ್ಥಿರ (Foo:: class . '::' . $name) ಕರೆ ಮಾಡಬೇಕಾಗಿತ್ತು; // ಈಗ ಕೇವಲ Foo ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿ::{$name};
  • ದಿನಾಂಕಗಳು ಮತ್ತು ಸಮಯದೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವ ಕಾರ್ಯಾಚರಣೆಗಳಲ್ಲಿ ಉಂಟಾಗುವ ಸಮಸ್ಯೆಗಳ ಸಂದರ್ಭದಲ್ಲಿ ವೈಯಕ್ತಿಕ ವಿನಾಯಿತಿಗಳ ಪೀಳಿಗೆಯನ್ನು ಸೇರಿಸಲಾಗಿದೆ (DateMalformedIntervalStringException, DateInvalidOperationException, DateRangeError).
  • unserialize() ಕಾರ್ಯದಲ್ಲಿ ಧಾರಾವಾಹಿ ಡೇಟಾದ ಪಾರ್ಸಿಂಗ್ ಸಮಯದಲ್ಲಿ ಸಂಭವಿಸುವ ದೋಷಗಳ ಸುಧಾರಿತ ನಿರ್ವಹಣೆ. ಸಮಸ್ಯೆಗಳಿದ್ದಲ್ಲಿ, Unserialize() ಈಗ E_NOTICE ಬದಲಿಗೆ E_WARNING ಅನ್ನು ನೀಡುತ್ತದೆ.
  • ಶ್ರೇಣಿ() ಕಾರ್ಯಕ್ಕೆ ಬದಲಾವಣೆಗಳನ್ನು ಮಾಡಲಾಗಿದೆ. ವ್ಯಾಪ್ತಿಯ ಗಡಿಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವ ವೇರಿಯೇಬಲ್‌ಗಳಲ್ಲಿ ವಸ್ತುಗಳು, ಸಂಪನ್ಮೂಲಗಳು ಅಥವಾ ಸರಣಿಗಳನ್ನು ರವಾನಿಸಲು ಪ್ರಯತ್ನಿಸುವಾಗ, ಹಾಗೆಯೇ $ಸ್ಟೆಪ್ ಪ್ಯಾರಾಮೀಟರ್‌ನಲ್ಲಿ ಋಣಾತ್ಮಕ ಮೌಲ್ಯವನ್ನು ಅಥವಾ ಯಾವುದೇ ಪ್ಯಾರಾಮೀಟರ್‌ನಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸದ ಮೌಲ್ಯವನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿದಾಗ ವಿನಾಯಿತಿಯನ್ನು ರಚಿಸಲಾಗುತ್ತದೆ. ಸಂಖ್ಯೆಗಳ ಬದಲಿಗೆ ಸ್ಟ್ರಿಂಗ್‌ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವಾಗ ಅಕ್ಷರಗಳ ಪಟ್ಟಿಯನ್ನು ಈಗ ಔಟ್‌ಪುಟ್ ಮಾಡಬಹುದು (ಉದಾಹರಣೆಗೆ, "ರೇಂಜ್('5', 'z')").
  • ಸ್ಥಿರ ಗುಣಲಕ್ಷಣಗಳೊಂದಿಗೆ ಗುಣಲಕ್ಷಣಗಳ ನಡವಳಿಕೆಯನ್ನು ಬದಲಾಯಿಸಲಾಗಿದೆ, ಇದು ಈಗ ಪೋಷಕ ವರ್ಗದಿಂದ ಆನುವಂಶಿಕವಾಗಿ ಪಡೆದ ಸ್ಥಿರ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಅತಿಕ್ರಮಿಸುತ್ತದೆ.
  • ಸ್ಟಾಕ್ ಓವರ್‌ಫ್ಲೋ ರಕ್ಷಣೆಗಾಗಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ. Zend.max_allowed_stack_size ಮತ್ತು zend.reserved_stack_size ನಿರ್ದೇಶನಗಳನ್ನು ini ಫೈಲ್‌ಗೆ ಸೇರಿಸಲಾಗಿದೆ, ಗರಿಷ್ಠ ಅನುಮತಿಸಲಾದ ಮತ್ತು ಕಾಯ್ದಿರಿಸಿದ ಸ್ಟಾಕ್ ಗಾತ್ರವನ್ನು ವಿವರಿಸುತ್ತದೆ. 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 ನಂತಹ ಬಹು-ಬೈಟ್ ಎನ್‌ಕೋಡಿಂಗ್‌ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡಲು ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ.
  • ವಿಧಾನಗಳಿಂದ ಮುಚ್ಚುವಿಕೆಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಆ ಮುಚ್ಚುವಿಕೆಗಳಿಗೆ ಹೆಸರಿಸಲಾದ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ರವಾನಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. $ಪರೀಕ್ಷೆ = ಹೊಸ ಪರೀಕ್ಷೆ(); $ ಮುಚ್ಚುವಿಕೆ = $ಪರೀಕ್ಷೆ->ಮ್ಯಾಜಿಕ್(...); $ ಮುಚ್ಚುವಿಕೆ(ಎ: 'ಹಲೋ', ಬಿ: 'ವರ್ಲ್ಡ್');
  • ಇಂಟರ್‌ಫೇಸ್‌ಗಳಲ್ಲಿ ಸ್ಥಿರಾಂಕಗಳ ಗೋಚರತೆಯನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಬದಲಾದ ನಡವಳಿಕೆ. ಇಂಟರ್ಫೇಸ್ I {ಸಾರ್ವಜನಿಕ const FOO = 'foo'; } ವರ್ಗ ಸಿ I {private const FOO = 'foo'; }
  • array_sum(), array_product(), posix_getrlimit(), gc_status(), class_alias(), mysqli_poll(), array_pad() ಮತ್ತು proc_get_status() ಕಾರ್ಯಗಳ ಸಾಮರ್ಥ್ಯಗಳನ್ನು ವಿಸ್ತರಿಸಲಾಗಿದೆ.
  • ನಕಾರಾತ್ಮಕ $widths ಮೌಲ್ಯವನ್ನು mb_strimwidth() ಗೆ ರವಾನಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಅಸಮ್ಮತಿಸಲಾಗಿದೆ. NumberFormatter::TYPE_CURRENCY ಸ್ಥಿರಾಂಕವನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ. $host ಮತ್ತು $port ಎಂಬ ಎರಡು ನಿಯತಾಂಕಗಳೊಂದಿಗೆ ldap_connect() ಫಂಕ್ಷನ್‌ಗೆ ಕರೆ ಮಾಡುವ ಬೆಂಬಲವನ್ನು ಸ್ಥಗಿತಗೊಳಿಸಲಾಗಿದೆ. opcache.consistency_checks ಸೆಟ್ಟಿಂಗ್ ಅನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ.

ಮೂಲ: opennet.ru

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ