ಅಭಿವೃದ್ಧಿಯ ಒಂದು ವರ್ಷದ ನಂತರ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಯ ಬಿಡುಗಡೆ . ಹೊಸ ಶಾಖೆಯು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳ ಸರಣಿಯನ್ನು ಒಳಗೊಂಡಿದೆ, ಜೊತೆಗೆ ಹೊಂದಾಣಿಕೆಯನ್ನು ಮುರಿಯುವ ಹಲವಾರು ಬದಲಾವಣೆಗಳನ್ನು ಒಳಗೊಂಡಿದೆ.
ಕೀ PHP 7.4 ರಲ್ಲಿ:
- - ವರ್ಗ ಗುಣಲಕ್ಷಣಗಳು ಈಗ ವಿಧದ ಘೋಷಣೆಗಳನ್ನು ಒಳಗೊಂಡಿರಬಹುದು, ಉದಾಹರಣೆಗೆ:
ವರ್ಗ ಬಳಕೆದಾರ {
ಸಾರ್ವಜನಿಕ ಇಂಟ್ $ ಐಡಿ;
ಸಾರ್ವಜನಿಕ ಸ್ಟ್ರಿಂಗ್ $ಹೆಸರು;
} - ಕಾರ್ಯಗಳನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಸಿಂಟ್ಯಾಕ್ಸ್ “fn(parameter_list) => expr” ಮೌಲ್ಯದ ಮೂಲಕ ಸ್ಕೋಪ್ ಬೈಂಡಿಂಗ್. ಉದಾಹರಣೆಗೆ, “fn($x) => $x + $y” ಎಂದರೆ “$fn2 = ಫಂಕ್ಷನ್ ($x) ಬಳಕೆ ($y) {ರಿಟರ್ನ್ $x + $y;}”);
- "??=" ಇದನ್ನು ಡಿಫಾಲ್ಟ್ ಮೌಲ್ಯವನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಲು ಬಳಸಬಹುದು ("a ??= b" "a = a ?? b" ಗೆ ಹೋಲುತ್ತದೆ, "a" ಅನ್ನು ವ್ಯಾಖ್ಯಾನಿಸಿದರೆ ಅದರ ಮೌಲ್ಯವನ್ನು ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಅದನ್ನು ವ್ಯಾಖ್ಯಾನಿಸದಿದ್ದರೆ ಮೌಲ್ಯವನ್ನು ನಿಗದಿಪಡಿಸಲಾಗಿದೆ "b" );
- ಸೀಮಿತಗೊಳಿಸಲಾಗಿದೆ ಪಡೆದ ರಿಟರ್ನ್ ಪ್ರಕಾರಗಳಲ್ಲಿ ಪ್ರಕಾರಗಳ ಆನುವಂಶಿಕ ಶ್ರೇಣಿಯನ್ನು ಸಂರಕ್ಷಿಸುವುದು, ಅಥವಾ ಪಡೆದ ಆರ್ಗ್ಯುಮೆಂಟ್ ಪ್ರಕಾರಗಳಲ್ಲಿ ಮೂಲ ಪ್ರಕಾರಗಳ ಶ್ರೇಣಿಯನ್ನು ಹಿಮ್ಮುಖಗೊಳಿಸುವ ಸಾಮರ್ಥ್ಯ ( ರಿಟರ್ನ್ ಪ್ರಕಾರ ಮತ್ತು ಆರ್ಗ್ಯುಮೆಂಟ್ ಪ್ರಕಾರದ ವಿರೋಧಾಭಾಸ). ಕೆಳಗಿನ ರಚನೆಗಳನ್ನು ಈಗ PHP ನಲ್ಲಿ ಬಳಸಬಹುದು:
ವರ್ಗ ಎ {}
ವರ್ಗ ಬಿ ಎ {} ಅನ್ನು ವಿಸ್ತರಿಸುತ್ತದೆವರ್ಗ ನಿರ್ಮಾಪಕ {
ಸಾರ್ವಜನಿಕ ಕಾರ್ಯ ವಿಧಾನ(): ಎ {}
}
ವರ್ಗ ಚೈಲ್ಡ್ ಪ್ರೊಡ್ಯೂಸರ್ ನಿರ್ಮಾಪಕರನ್ನು ವಿಸ್ತರಿಸುತ್ತಾನೆ {
ಸಾರ್ವಜನಿಕ ಕಾರ್ಯ ವಿಧಾನ(): ಬಿ {}
} - "...$var" ಸರಣಿಗಳ ಒಳಗೆ ಆಪರೇಟರ್ ಅನ್ನು ಅನ್ಪ್ಯಾಕ್ ಮಾಡಲಾಗುತ್ತಿದೆ, ಹೊಸ ಶ್ರೇಣಿಯನ್ನು ವ್ಯಾಖ್ಯಾನಿಸುವಾಗ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಅರೇಗಳ ಪರ್ಯಾಯವನ್ನು ನಿರ್ವಹಿಸಿ;
$ಭಾಗಗಳು = ['ಸೇಬು', 'ಪಿಯರ್'];
$ಹಣ್ಣುಗಳು = ['ಬಾಳೆಹಣ್ಣು', 'ಕಿತ್ತಳೆ', …$ಭಾಗಗಳು, 'ಕಲ್ಲಂಗಡಿ'];
// ['ಬಾಳೆಹಣ್ಣು', 'ಕಿತ್ತಳೆ', 'ಸೇಬು', 'ಪಿಯರ್', 'ಕಲ್ಲಂಗಡಿ']; - ಸಂಖ್ಯಾ ಅಕ್ಷರಗಳಲ್ಲಿ ಡಿಲಿಮಿಟರ್ಗಳೊಂದಿಗೆ ದೊಡ್ಡ ಸಂಖ್ಯೆಗಳ ದೃಶ್ಯ ಪ್ರಾತಿನಿಧ್ಯ (1_000_000_00);
- ಬೆಂಬಲ , ಇದು ವಸ್ತುವಿನ ಉಲ್ಲೇಖವನ್ನು ಉಳಿಸಿಕೊಳ್ಳಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಆದರೆ ಸಂಬಂಧಿಸಿದ ವಸ್ತುವನ್ನು ಅಳಿಸದಂತೆ ಕಸ ಸಂಗ್ರಾಹಕವನ್ನು ನಿರ್ಬಂಧಿಸಬೇಡಿ;
- ಹೊಸ ಆಬ್ಜೆಕ್ಟ್ ಧಾರಾವಾಹಿ (Serializable ಮತ್ತು __sleep()/__wakeup() ನ ಸಂಯೋಜನೆ, ಇದು Serializable ಇಂಟರ್ಫೇಸ್ ಅನ್ನು ಬದಲಿಸಿದೆ, ಅದನ್ನು ಅಸಮ್ಮತಿಸಲಾಗುವುದು;
// ವಸ್ತುವಿನ ಎಲ್ಲಾ ಸ್ಥಿತಿಗಳನ್ನು ಹೊಂದಿರುವ ಶ್ರೇಣಿಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ;
ಸಾರ್ವಜನಿಕ ಕಾರ್ಯ __serialize(): ಅರೇ;// ರಚನೆಯಿಂದ ವಸ್ತುವಿನ ಸ್ಥಿತಿಯನ್ನು ಮರುಸ್ಥಾಪಿಸುತ್ತದೆ
ಸಾರ್ವಜನಿಕ ಕಾರ್ಯ __unserialize (array $data): ಶೂನ್ಯ; - ವಿಧಾನದಿಂದ ವಿನಾಯಿತಿಗಳನ್ನು ಎಸೆಯಲು ಅನುಮತಿಸಲಾಗಿದೆ ;
- ಆಬ್ಜೆಕ್ಟ್ ಕೋಡ್ ಸಂಗ್ರಹವನ್ನು ಪೂರ್ವ ಲೋಡ್ ಮಾಡಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಹೊಂದಿಸಲು ಪ್ಯಾರಾಮೀಟರ್ ಸೇರಿಸಲಾಗಿದೆ
, ಇದರ ಮೂಲಕ ನೀವು PHP ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು ಅದು ಸರ್ವರ್ ಪ್ರಾರಂಭವಾದಾಗ ಕಂಪೈಲ್ ಆಗುತ್ತದೆ ಮತ್ತು ರನ್ ಆಗುತ್ತದೆ. ಈ ಸ್ಕ್ರಿಪ್ಟ್ ಇತರ ಫೈಲ್ಗಳ ಆಪ್ಕೋಡ್ ಅನ್ನು ಅವುಗಳ ನೇರ ಸೇರ್ಪಡೆಯ ಮೂಲಕ ಅಥವಾ opcache_compile_file() ಕಾರ್ಯವನ್ನು ಬಳಸಿಕೊಂಡು ಲೋಡ್ ಮಾಡಬಹುದು; - ಕ್ಯಾಸ್ಟಗ್ನೋಲಿ ಬಹುಪದವನ್ನು ಬಳಸಿಕೊಂಡು ಚೆಕ್ಸಮ್ಗಳನ್ನು ಲೆಕ್ಕಾಚಾರ ಮಾಡಲು ಹ್ಯಾಶ್ ವಿಸ್ತರಣೆಗೆ crc32c ಕಾರ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ;
- ಪಾಸ್ವರ್ಡ್ ಹ್ಯಾಶಿಂಗ್ ವಿಧಾನಗಳಿಗಾಗಿ ಪಾಸ್ವರ್ಡ್_ಹ್ಯಾಶ್() ಕಾರ್ಯಕ್ಕೆ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ argon2i ಮತ್ತು argin2id, ಸೋಡಿಯಂ ಲೈಬ್ರರಿಯ ಅನುಷ್ಠಾನದಲ್ಲಿ, PHP ಅನ್ನು ಲಿಬಾರ್ಗಾನ್ ಇಲ್ಲದೆ ನಿರ್ಮಿಸಿದರೆ;
- mb_str_split() ಕಾರ್ಯವನ್ನು ಸೇರಿಸಲಾಗಿದೆ, str_split() ಗೆ ಹೋಲುತ್ತದೆ, ಆದರೆ ಬೈಟ್ಗಳೊಂದಿಗೆ ಅಲ್ಲ ಆದರೆ ಬಹು-ಬೈಟ್ ಸ್ಟ್ರಿಂಗ್ನಲ್ಲಿ ಅಕ್ಷರ ಸ್ಥಾನಗಳೊಂದಿಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ;
- ಸ್ಟ್ರಿಪ್_ಟ್ಯಾಗ್ಸ್() ಕಾರ್ಯವು ಈಗ ಟ್ಯಾಗ್ ಹೆಸರುಗಳೊಂದಿಗೆ ರಚನೆಯನ್ನು ರವಾನಿಸುವ ಸಾಮರ್ಥ್ಯವನ್ನು ಹೊಂದಿದೆ, ಅಂದರೆ. ಸ್ಟ್ರಿಪ್_ಟ್ಯಾಗ್ಗಳ ಬದಲಿಗೆ ($str, ' ') ನೀವು ಈಗ ಸ್ಟ್ರಿಪ್_ಟ್ಯಾಗ್ಗಳನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಬಹುದು($str, ['a', 'p']);
- proc_open() ಓಪೆರಾಂಡ್ಗಳನ್ನು ರನ್ ಮಾಡಲು ಸ್ಟ್ರಿಂಗ್ಗಿಂತ ಹೆಚ್ಚಾಗಿ ಸರಣಿಯಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲು ಅನುಮತಿಸುತ್ತದೆ ಮತ್ತು ಶೂನ್ಯ ಫೈಲ್ ವಿವರಣೆಗಾಗಿ ಥ್ರೆಡ್ ಮರುನಿರ್ದೇಶನ ಮತ್ತು ಬೆಂಬಲವನ್ನು ಸಹ ಒದಗಿಸುತ್ತದೆ;
proc_open(['php', '-r', 'echo "Hello World\n";'], $descriptors, $pipes);
// ಶೆಲ್ನಲ್ಲಿ 2>&1 ನಂತೆ
proc_open($cmd, [1 => ['ಪೈಪ್', 'w'], 2 => ['ಮರುನಿರ್ದೇಶನ', 1]], $ಪೈಪ್ಸ್);// ಶೆಲ್ನಲ್ಲಿ 2>/dev/null ಅಥವಾ 2>nul ನಂತೆ
proc_open($cmd, [1 => ['ಪೈಪ್', 'w'], 2 => ['null']], $pipes); - Firebird/Interbase, Recode ಮತ್ತು WDDX ವಿಸ್ತರಣೆಗಳನ್ನು ಮೂಲ ವಿತರಣೆಯಿಂದ ಹೊರಗಿಡಲಾಗಿದೆ. ಈ ವಿಸ್ತರಣೆಗಳನ್ನು ಈಗ ಪಿಇಸಿಎಲ್ ಮೂಲಕ ವಿತರಿಸಲಾಗಿದೆ;
- ವರ್ಗಕ್ಕೆ ವರ್ಗಾಯಿಸಲಾಗಿದೆ ಆವರಣಗಳಿಲ್ಲದ ನೆಸ್ಟೆಡ್ ಟರ್ನರಿ ಆಪರೇಟರ್ಗಳು, ಕರ್ಲಿ ಬ್ರೇಸ್ಗಳನ್ನು (“$var{$idx}”) ಬಳಸಿಕೊಂಡು ಅರೇ ಎಲಿಮೆಂಟ್ಗಳು ಮತ್ತು ಸ್ಟ್ರಿಂಗ್ಗಳನ್ನು ಪ್ರವೇಶಿಸುವುದು, is_real() ಕಾರ್ಯ ಮತ್ತು ನೈಜತೆಗೆ ಬಿತ್ತರಿಸುವಿಕೆ, ಪೋಷಕ ವರ್ಗವಿಲ್ಲದೆ ಪೋಷಕ ಕೀವರ್ಡ್ ಬಳಸಿ, parameter allow_url_include ಕಾನ್ಫಿಗರೇಶನ್ಗಳಂತಹ ವೈಶಿಷ್ಟ್ಯಗಳು , ಆಬ್ಜೆಕ್ಟ್ಗಳಲ್ಲಿ array_key_exists() ಅನ್ನು ಬಳಸುವುದು.
ಕಾರ್ಯಗಳು get_magic_quotes_gpc(), get_magic_quotes_runtime(), ಮತ್ತು
hebrevc(), convert_cyr_string(), money_format(), ezmlm_hash(), restore_include_path(), ldap_control_paged_result_response(), ldap_control_paged_result(), ReflectionType::__toString().ಕಾರ್ಯಗಳಲ್ಲಿ ತಪ್ಪಾದ ಚಿಹ್ನೆಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸುವಾಗ ಬಳಕೆಯಲ್ಲಿಲ್ಲದ ವೈಶಿಷ್ಟ್ಯದ ಬಳಕೆಯ ಬಗ್ಗೆ ಎಚ್ಚರಿಕೆಯನ್ನು ಒದಗಿಸಲಾಗಿದೆ
base_convert(), bindec(), octdec() ಮತ್ತು hexdec(), ಮತ್ತು mb_ereg_replace() ನಲ್ಲಿ ಸ್ಟ್ರಿಂಗ್ ಅಲ್ಲದ ಮಾದರಿಯನ್ನು ಸೂಚಿಸುವಾಗ.
ಮೂಲ: opennet.ru
