PHP 8.2 ನ ಆಲ್ಫಾ ಪರೀಕ್ಷೆ ಪ್ರಾರಂಭವಾಗಿದೆ

PHP 8.2 ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಹೊಸ ಶಾಖೆಯ ಮೊದಲ ಆಲ್ಫಾ ಬಿಡುಗಡೆಯನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲಾಗಿದೆ. ನವೆಂಬರ್ 24 ರಂದು ಬಿಡುಗಡೆಯನ್ನು ನಿಗದಿಪಡಿಸಲಾಗಿದೆ. PHP 8.2 ರಲ್ಲಿ ಪರೀಕ್ಷೆಗಾಗಿ ಅಥವಾ ಅನುಷ್ಠಾನಕ್ಕೆ ಯೋಜಿಸಲಾಗಿರುವ ಮುಖ್ಯ ಆವಿಷ್ಕಾರಗಳು ಈಗಾಗಲೇ ಲಭ್ಯವಿದೆ:

  • "ತಪ್ಪು" ಮತ್ತು "ಶೂನ್ಯ" ಪ್ರತ್ಯೇಕ ಪ್ರಕಾರಗಳನ್ನು ಸೇರಿಸಲಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ದೋಷ ಮುಕ್ತಾಯದ ಫ್ಲ್ಯಾಗ್ ಅಥವಾ ಖಾಲಿ ಮೌಲ್ಯವನ್ನು ಹಿಂತಿರುಗಿಸಲು ಕಾರ್ಯಕ್ಕಾಗಿ ಬಳಸಬಹುದು. ಹಿಂದೆ, "ತಪ್ಪು" ಮತ್ತು "ಶೂನ್ಯ" ಅನ್ನು ಇತರ ಪ್ರಕಾರಗಳೊಂದಿಗೆ ಮಾತ್ರ ಬಳಸಬಹುದಾಗಿತ್ತು (ಉದಾಹರಣೆಗೆ, "ಸ್ಟ್ರಿಂಗ್| ತಪ್ಪು"), ಆದರೆ ಈಗ ಅವುಗಳನ್ನು ಪ್ರತ್ಯೇಕವಾಗಿ ಬಳಸಬಹುದು: ಯಾವಾಗಲೂ ಫಂಕ್ಷನ್ ಫಾಲ್ಸ್(): ತಪ್ಪು {ರಿಟರ್ನ್ ತಪ್ಪು; }
  • ತರಗತಿಯನ್ನು ಓದಲು ಮಾತ್ರ ಎಂದು ಗುರುತಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಅಂತಹ ವರ್ಗಗಳಲ್ಲಿನ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಒಮ್ಮೆ ಮಾತ್ರ ಹೊಂದಿಸಬಹುದು, ಅದರ ನಂತರ ಅವುಗಳನ್ನು ಬದಲಾಯಿಸಲಾಗುವುದಿಲ್ಲ. ಹಿಂದೆ, ಪ್ರತ್ಯೇಕ ವರ್ಗ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಓದಲು-ಮಾತ್ರ ಎಂದು ಗುರುತಿಸಬಹುದಾಗಿತ್ತು, ಆದರೆ ಈಗ ನೀವು ಈ ಮೋಡ್ ಅನ್ನು ಎಲ್ಲಾ ವರ್ಗ ಗುಣಲಕ್ಷಣಗಳಿಗೆ ಏಕಕಾಲದಲ್ಲಿ ಸಕ್ರಿಯಗೊಳಿಸಬಹುದು. ವರ್ಗ ಮಟ್ಟದಲ್ಲಿ "ಓದಲು ಮಾತ್ರ" ಫ್ಲ್ಯಾಗ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸುವುದರಿಂದ ವರ್ಗಕ್ಕೆ ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಸೇರಿಸುವುದರಿಂದ ಗುಣಲಕ್ಷಣಗಳನ್ನು ನಿರ್ಬಂಧಿಸುತ್ತದೆ. ಓದಲು ಮಾತ್ರ ವರ್ಗ ಪೋಸ್ಟ್ {ಸಾರ್ವಜನಿಕ ಕಾರ್ಯ __ನಿರ್ಮಾಣ (ಸಾರ್ವಜನಿಕ ಸ್ಟ್ರಿಂಗ್ $ಶೀರ್ಷಿಕೆ, ಸಾರ್ವಜನಿಕ ಲೇಖಕ $ಲೇಖಕ, ) {}} $ಪೋಸ್ಟ್ = ಹೊಸ ಪೋಸ್ಟ್(/* ... */); $post->ಅಜ್ಞಾತ = 'ತಪ್ಪು'; // ದೋಷ: ಡೈನಾಮಿಕ್ ಆಸ್ತಿಯನ್ನು ರಚಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ ಪೋಸ್ಟ್ ::$ಅಜ್ಞಾತ
  • ವರ್ಗದಲ್ಲಿ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ರಚಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು (ಮೇಲಿನ ಉದಾಹರಣೆಯಲ್ಲಿ "ಪೋಸ್ಟ್->ಅಜ್ಞಾತ" ನಂತಹ) ಅಸಮ್ಮತಿಸಲಾಗಿದೆ. PHP 9.0 ನಲ್ಲಿ, ವರ್ಗದಲ್ಲಿ ಆರಂಭದಲ್ಲಿ ವ್ಯಾಖ್ಯಾನಿಸದ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಪ್ರವೇಶಿಸುವುದು ದೋಷಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ (ErrorException). ಗುಣಲಕ್ಷಣಗಳನ್ನು ರಚಿಸಲು __ಗೆಟ್ ಮತ್ತು __ಸೆಟ್ ವಿಧಾನಗಳನ್ನು ಒದಗಿಸುವ ತರಗತಿಗಳು ಅಥವಾ stdClass ನಲ್ಲಿ ಡೈನಾಮಿಕ್ ಗುಣಲಕ್ಷಣಗಳು ಬದಲಾವಣೆಗಳಿಲ್ಲದೆ ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತವೆ, ಡೆವಲಪರ್ ಅನ್ನು ಮರೆಮಾಡಿದ ದೋಷಗಳಿಂದ ರಕ್ಷಿಸಲು ಅಸ್ತಿತ್ವದಲ್ಲಿಲ್ಲದ ಗುಣಲಕ್ಷಣಗಳೊಂದಿಗೆ ಸೂಚ್ಯ ಕೆಲಸವನ್ನು ಮಾತ್ರ ಬೆಂಬಲಿಸಲಾಗುತ್ತದೆ. ಹಳೆಯ ಕೋಡ್‌ನ ಕೆಲಸವನ್ನು ಸಂರಕ್ಷಿಸಲು, "#[AllowDynamicProperties]" ಗುಣಲಕ್ಷಣವನ್ನು ಪ್ರಸ್ತಾಪಿಸಲಾಗಿದೆ, ಇದು ಡೈನಾಮಿಕ್ ಗುಣಲಕ್ಷಣಗಳ ಬಳಕೆಯನ್ನು ಅನುಮತಿಸುತ್ತದೆ.
  • ದೋಷದ ಸಮಯದಲ್ಲಿ ಸ್ಟಾಕ್ ಟ್ರೇಸ್ ಔಟ್‌ಪುಟ್‌ನಲ್ಲಿ ಸೂಕ್ಷ್ಮ ನಿಯತಾಂಕಗಳನ್ನು ಫಿಲ್ಟರ್ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಸಂಭವಿಸುವ ದೋಷಗಳ ಬಗ್ಗೆ ಮಾಹಿತಿಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮೂರನೇ ವ್ಯಕ್ತಿಯ ಸೇವೆಗಳಿಗೆ ಕಳುಹಿಸಿದಾಗ ಕೆಲವು ಮಾಹಿತಿಯನ್ನು ಕತ್ತರಿಸುವುದು ಅಗತ್ಯವಾಗಬಹುದು, ಅದು ಸಮಸ್ಯೆಗಳನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡುವ ಮತ್ತು ಅವುಗಳ ಬಗ್ಗೆ ಡೆವಲಪರ್‌ಗಳಿಗೆ ತಿಳಿಸುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಟ್ರೇಸಿಂಗ್‌ನಿಂದ ಬಳಕೆದಾರಹೆಸರುಗಳು, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಪರಿಸರ ವೇರಿಯಬಲ್‌ಗಳನ್ನು ಒಳಗೊಂಡಿರುವ ನಿಯತಾಂಕಗಳನ್ನು ನೀವು ಹೊರಗಿಡಬಹುದು. ಕಾರ್ಯ ಪರೀಕ್ಷೆ ($foo, #[\SensitiveParameter] $password, $baz ) { ಹೊಸ ವಿನಾಯಿತಿಯನ್ನು ಎಸೆಯಿರಿ ('ದೋಷ'); } ಪರೀಕ್ಷೆ('foo', 'password', 'baz'); ಮಾರಣಾಂತಿಕ ದೋಷ: ಪತ್ತೆಯಾಗದ ವಿನಾಯಿತಿ: test.php ನಲ್ಲಿ ದೋಷ: 8 ಸ್ಟಾಕ್ ಟ್ರೇಸ್: #0 test.php(11): test('foo', ಆಬ್ಜೆಕ್ಟ್(SensitiveParameterValue), 'baz') #1 {main} test.php ನಲ್ಲಿ ಎಸೆಯಲಾಗಿದೆ 8 ನೇ ಸಾಲಿನಲ್ಲಿ
  • "${var}" ಮತ್ತು ${(var)} ಅಭಿವ್ಯಕ್ತಿಗಳನ್ನು ಬಳಸಿಕೊಂಡು ವೇರಿಯಬಲ್ ಮೌಲ್ಯಗಳನ್ನು ತಂತಿಗಳಾಗಿ ಬದಲಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಅಸಮ್ಮತಿಸಲಾಗಿದೆ. ಸಾಮಾನ್ಯವಾಗಿ ಬಳಸುವ "{$var}" ಮತ್ತು "$var" ಪರ್ಯಾಯಗಳಿಗೆ ಬೆಂಬಲವನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲಾಗಿದೆ. ಉದಾಹರಣೆಗೆ: "ಹಲೋ {$world}"; ಸರಿ "ಹಲೋ $ವರ್ಲ್ಡ್"; ಸರಿ "ಹಲೋ ${ವರ್ಲ್ಡ್}"; ಅಸಮ್ಮತಿಸಲಾಗಿದೆ: ${} ಅನ್ನು ತಂತಿಗಳಲ್ಲಿ ಬಳಸುವುದನ್ನು ಅಸಮ್ಮತಿಸಲಾಗಿದೆ
  • "call_user_func($callable)" ಮೂಲಕ ಕರೆಯಬಹುದಾದ ಭಾಗಶಃ ಬೆಂಬಲಿತ ಕರೆ ಮಾಡಬಹುದಾದ ಅಸಮ್ಮತಿಸಲಾಗಿದೆ ಆದರೆ "$callable()": "self:: method" "parent:: method" "static" ::method ರೂಪದಲ್ಲಿ ಕರೆ ಮಾಡುವುದನ್ನು ಬೆಂಬಲಿಸುವುದಿಲ್ಲ " ["ಸ್ವಯಂ", "ವಿಧಾನ"] ["ಪೋಷಕ", "ವಿಧಾನ"] ["ಸ್ಥಿರ", "ವಿಧಾನ"] ["ಫೂ", "ಬಾರ್:: ವಿಧಾನ"] [ಹೊಸ ಫೂ, "ಬಾರ್:: ವಿಧಾನ" ]
  • ಲೊಕೇಲ್-ಸ್ವತಂತ್ರ ಕೇಸ್ ಪರಿವರ್ತನೆಯನ್ನು ಅಳವಡಿಸಲಾಗಿದೆ. strtolower() ಮತ್ತು strtoupper() ನಂತಹ ಕಾರ್ಯಗಳು ಈಗ ಯಾವಾಗಲೂ ASCII ಶ್ರೇಣಿಯಲ್ಲಿರುವ ಅಕ್ಷರಗಳ ಪ್ರಕರಣವನ್ನು "C" ಲೊಕೇಲ್‌ಗೆ ಹೊಂದಿಸಿದಂತೆ ಪರಿವರ್ತಿಸುತ್ತವೆ.

ಮೂಲ: opennet.ru

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