PHP 7.4 நிரலாக்க மொழியின் வெளியீடு

ஒரு வருட வளர்ச்சிக்குப் பிறகு வழங்கப்பட்டது நிரலாக்க மொழி வெளியீடு PHP, 7.4. புதிய கிளையில் தொடர்ச்சியான புதிய அம்சங்கள் மற்றும் இணக்கத்தன்மையை உடைக்கும் பல மாற்றங்கள் உள்ளன.

சாவி மேம்பாடுகள் PHP 7.4 இல்:

  • தட்டச்சு செய்த பண்புகள் - வகுப்பு பண்புகளில் இப்போது வகை அறிவிப்புகள் அடங்கும், எடுத்துக்காட்டாக:

    வகுப்பு பயனர் {
    பொது முழு எண்ணாக $id;
    பொது சரம் $பெயர்;
    }

  • சுருக்கமாக "fn(parameter_list) => expr" செயல்பாடுகளை மதிப்பின் மூலம் ஸ்கோப் பைண்டிங்குடன் வரையறுக்கும் தொடரியல். எடுத்துக்காட்டாக, “fn($x) => $x + $y” என்பது “$fn2 = செயல்பாடு ($x) உபயோகம் ($y) {திரும்ப $x + $y;}”);
  • சுருக்கெழுத்து ஒதுக்கீட்டு ஆபரேட்டர் "??=" இது ஒரு இயல்புநிலை மதிப்பை வரையறுக்கப் பயன்படும் ("a ??= b" என்பது "a = a ?? b" க்கு ஒத்ததாகும், "a" வரையறுக்கப்பட்டால் அதன் மதிப்பு சேமிக்கப்படும், மேலும் வரையறுக்கப்படாவிட்டால் மதிப்பு "b" ஒதுக்கப்பட்டுள்ளது );
  • வரையறுக்கப்பட்டவை வாய்ப்பு பெறப்பட்ட வருவாய் வகைகளில் வகைகளின் பரம்பரை படிநிலையை பாதுகாத்தல் அல்லது பெறப்பட்ட வாத வகைகளில் அசல் வகைகளின் படிநிலையை மாற்றியமைக்கும் திறன் (இணை மாறுபாடு திரும்பும் வகை மற்றும் வாத வகை முரண்பாடு). பின்வரும் கட்டுமானங்கள் இப்போது PHP இல் பயன்படுத்தப்படலாம்:

    வகுப்பு A {}
    வகுப்பு B A {}ஐ நீட்டிக்கிறது

    வகுப்பு தயாரிப்பாளர் {
    பொது செயல்பாட்டு முறை(): A {}
    }
    வகுப்பு குழந்தை தயாரிப்பாளர் தயாரிப்பாளரை நீட்டித்தார் {
    பொது செயல்பாட்டு முறை(): B {}
    }

  • "...$var" வரிசைகளுக்குள் ஆபரேட்டரைத் திறக்கிறது, அனுமதிக்கும் ஒரு புதிய வரிசையை வரையறுக்கும் போது ஏற்கனவே உள்ள வரிசைகளை மாற்றவும்;

    $parts = ['ஆப்பிள்', 'பேரி'];
    $பழங்கள் = ['வாழைப்பழம்', 'ஆரஞ்சு', …$பாகங்கள், 'தர்பூசணி'];
    // ['வாழைப்பழம்', 'ஆரஞ்சு', 'ஆப்பிள்', 'பேரி', 'தர்பூசணி'];

  • திறன் எண்ணியல் எழுத்துக்களில் (1_000_000_00) டிலிமிட்டர்களுடன் கூடிய பெரிய எண்களின் காட்சிப் பிரதிநிதித்துவம்;
  • ஆதரவு பலவீனமான இணைப்புகள், இது ஒரு பொருளின் குறிப்பைத் தக்கவைத்துக்கொள்ள உங்களை அனுமதிக்கிறது, ஆனால் தொடர்புடைய பொருளை நீக்குவதிலிருந்து குப்பை சேகரிப்பாளரைத் தடுக்க வேண்டாம்;
  • புதிய பொறிமுறையை பொருள் வரிசையாக்கம் (Serializable மற்றும் __sleep()/__wakeup() ஆகியவற்றின் கலவையாகும், இது Serializable இடைமுகத்தை மாற்றியது, இது நிறுத்தப்படும்;

    // பொருளின் அனைத்து நிலைகளையும் கொண்ட வரிசையை வழங்குகிறது;
    பொது செயல்பாடு __serialize(): வரிசை;

    // ஒரு வரிசையிலிருந்து ஒரு பொருளின் நிலையை மீட்டெடுக்கிறது
    பொது செயல்பாடு __unserialize(array $data): void;

  • ஒரு முறையிலிருந்து விதிவிலக்குகளை வீச அனுமதிக்கப்படுகிறது __toString();
  • பொருள் குறியீடு தற்காலிக சேமிப்பை முன்கூட்டியே ஏற்றுவதற்கான ஆதரவு சேர்க்கப்பட்டது. அமைப்பதற்கான அளவுரு சேர்க்கப்பட்டது
    opcache.preload, இதன் மூலம் நீங்கள் ஒரு PHP ஸ்கிரிப்டைக் குறிப்பிடலாம், அது தொகுக்கப்பட்டு சேவையகம் தொடங்கும் போது இயக்கப்படும். இந்த ஸ்கிரிப்ட் மற்ற கோப்புகளின் opcode ஐ நேரடியாகச் சேர்ப்பதன் மூலம் அல்லது opcache_compile_file() செயல்பாட்டைப் பயன்படுத்தி ஏற்றலாம்;

  • காஸ்டாக்னோலி பல்லுறுப்புக்கோவையைப் பயன்படுத்தி செக்சம்களைக் கணக்கிட ஹாஷ் நீட்டிப்பில் crc32c செயல்பாடு சேர்க்கப்பட்டது;
  • PHP லிபார்கன் இல்லாமல் கட்டமைக்கப்பட்டிருந்தால், சோடியம் நூலகத்தின் செயலாக்கத்தில், கடவுச்சொல்லை ஹாஷிங் செய்யும் முறைகள் argon2i மற்றும் argin2id க்கான password_hash() செயல்பாட்டிற்கு ஆதரவு சேர்க்கப்பட்டது;
  • சேர்க்கப்பட்ட செயல்பாடு 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 => ['pipe', 'w'], 2 => ['redirect', 1]], $pipes);

    // 2>/dev/null அல்லது 2>nul in shell
    proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes);

  • Firebird/Interbase, Recode மற்றும் WDDX நீட்டிப்புகள் அடிப்படை விநியோகத்திலிருந்து விலக்கப்பட்டுள்ளன. இந்த நீட்டிப்புகள் இப்போது PECL மூலம் விநியோகிக்கப்படுகின்றன;
  • வகைக்கு மாற்றப்பட்டது காலாவதியானது அடைப்புக்குறிகள் இல்லாமல் உள்ளமைக்கப்பட்ட மும்மை ஆபரேட்டர்கள், சுருள் பிரேஸ்கள் (“$var{$idx}”) ஐப் பயன்படுத்தி வரிசை உறுப்புகள் மற்றும் சரங்களை அணுகுதல், is_real() செயல்பாடு மற்றும் உண்மைக்கு அனுப்புதல், பெற்றோர் வகுப்பு இல்லாமல் பெற்றோர் முக்கிய சொல்லைப் பயன்படுத்தி, அனுமதி_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

கருத்தைச் சேர்