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

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

ಕೀ ಅಭಿವೃದ್ಧಿಗಳು 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): ಶೂನ್ಯ;

  • ವಿಧಾನದಿಂದ ವಿನಾಯಿತಿಗಳನ್ನು ಎಸೆಯಲು ಅನುಮತಿಸಲಾಗಿದೆ __toString();
  • ಆಬ್ಜೆಕ್ಟ್ ಕೋಡ್ ಸಂಗ್ರಹವನ್ನು ಪೂರ್ವ ಲೋಡ್ ಮಾಡಲು ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗಿದೆ. ಹೊಂದಿಸಲು ಪ್ಯಾರಾಮೀಟರ್ ಸೇರಿಸಲಾಗಿದೆ
    opcache.preload, ಇದರ ಮೂಲಕ ನೀವು 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

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