PHP 7.4 પ્રોગ્રામિંગ ભાષાનું પ્રકાશન

વિકાસના એક વર્ષ પછી પ્રસ્તુત પ્રોગ્રામિંગ ભાષા પ્રકાશન PHP, 7.4. નવી શાખામાં નવી સુવિધાઓની શ્રેણી, તેમજ સુસંગતતાને તોડતા ઘણા ફેરફારોનો સમાવેશ થાય છે.

કી સુધારાઓ PHP 7.4 માં:

  • ટાઇપ કરેલ ગુણધર્મો - વર્ગ ગુણધર્મો હવે પ્રકાર ઘોષણાઓ સમાવી શકે છે, ઉદાહરણ તરીકે:

    વર્ગ વપરાશકર્તા {
    જાહેર int $id;
    જાહેર શબ્દમાળા $name;
    }

  • સંક્ષિપ્ત મૂલ્ય દ્વારા સ્કોપ બાઈન્ડિંગ સાથે "fn(parameter_list) => expr" ફંક્શનને વ્યાખ્યાયિત કરવા માટે સિન્ટેક્સ. ઉદાહરણ તરીકે, “fn($x) => $x + $y” એ “$fn2 = ફંક્શન ($x) ઉપયોગ ($y) {return $x + $y;}” માટે સમાન છે;
  • શૉર્ટહેન્ડ અસાઇનમેન્ટ ઑપરેટર "??=" જેનો ઉપયોગ ડિફૉલ્ટ મૂલ્યને વ્યાખ્યાયિત કરવા માટે થઈ શકે છે ("a ??= b" એ "a = a ?? b" જેવું જ છે, જો "a" વ્યાખ્યાયિત કરવામાં આવે તો તેનું મૂલ્ય સંગ્રહિત થાય છે, અને જો તે વ્યાખ્યાયિત ન હોય તો મૂલ્ય "b" સોંપેલ છે);
  • લિમિટેડ તક વ્યુત્પન્ન વળતર પ્રકારોમાં પ્રકારોના વારસાના વંશવેલોને સાચવવું, અથવા વ્યુત્પન્ન દલીલ પ્રકારોમાં મૂળ પ્રકારોના વંશવેલાને ઉલટાવી દેવાની ક્ષમતા (સહપ્રવૃત્તિ વળતર પ્રકાર અને દલીલ પ્રકાર વિરોધાભાસ). નીચેની રચનાઓ હવે PHP માં વાપરી શકાય છે:

    વર્ગ A {}
    વર્ગ B A {} વિસ્તરે છે

    વર્ગ નિર્માતા {
    જાહેર કાર્ય પદ્ધતિ(): A {}
    }
    વર્ગ બાળઉત્પાદક નિર્માતાને વિસ્તારે છે {
    જાહેર કાર્ય પદ્ધતિ(): B {}
    }

  • એરેની અંદર ઓપરેટરને અનપેક કરી રહ્યું છે “…$var”, પરવાનગી આપે છે નવી એરેને વ્યાખ્યાયિત કરતી વખતે હાલની એરેની અવેજીમાં કરો;

    $parts = ['સફરજન', 'પિઅર'];
    $fruits = ['કેળા', 'નારંગી', …$parts, 'તરબૂચ'];
    // ['કેળા', 'નારંગી', 'સફરજન', 'પિઅર', 'તરબૂચ'];

  • તક સંખ્યાત્મક શાબ્દિક (1_000_000_00) માં સીમાંકકો સાથે મોટી સંખ્યાઓની દ્રશ્ય રજૂઆત;
  • આધાર નબળી કડીઓ, જે તમને ઑબ્જેક્ટનો સંદર્ભ જાળવી રાખવાની મંજૂરી આપે છે, પરંતુ કચરો એકત્ર કરનારને સંબંધિત ઑબ્જેક્ટને કાઢી નાખવાથી અવરોધિત કરશો નહીં;
  • નવી પદ્ધતિ ઑબ્જેક્ટ સીરીયલાઈઝેશન (સીરીયલાઈઝેબલ અને __sleep()/__wakeup() નું સંયોજન), જેણે સીરીયલાઈઝેબલ ઈન્ટરફેસને બદલ્યું છે, જેને નાપસંદ કરવામાં આવશે;

    // ઑબ્જેક્ટની તમામ સ્થિતિઓ ધરાવતો એરે પરત કરે છે;
    જાહેર કાર્ય __serialize(): એરે;

    // એરેમાંથી ઑબ્જેક્ટની સ્થિતિને પુનઃસ્થાપિત કરે છે
    સાર્વજનિક કાર્ય __અનસીરીયલાઇઝ(એરે $ડેટા): રદબાતલ;

  • પદ્ધતિમાંથી અપવાદો ફેંકવાની મંજૂરી __toString();
  • ઑબ્જેક્ટ કોડ કૅશને પ્રીલોડ કરવા માટે ઉમેરાયેલ સપોર્ટ. સેટિંગ માટે પરિમાણ ઉમેર્યું
    opcache.preload, જેના દ્વારા તમે PHP સ્ક્રિપ્ટનો ઉલ્લેખ કરી શકો છો જે કમ્પાઇલ કરવામાં આવશે અને જ્યારે સર્વર શરૂ થશે ત્યારે ચલાવવામાં આવશે. આ સ્ક્રિપ્ટ અન્ય ફાઇલોના ઓપકોડને તેમના સીધા સમાવેશ દ્વારા અથવા opcache_compile_file() ફંક્શનનો ઉપયોગ કરીને લોડ કરી શકે છે;

  • Castagnoli બહુપદીનો ઉપયોગ કરીને ચેકસમની ગણતરી કરવા માટે હેશ એક્સટેન્શનમાં crc32c ફંક્શન ઉમેર્યું;
  • પાસવર્ડ હેશિંગ પદ્ધતિઓ argon2i અને argin2id માટે password_hash() ફંક્શનમાં સમર્થન ઉમેર્યું, સોડિયમ લાઇબ્રેરીના અમલીકરણમાં, જો PHP લિબાર્ગોન વિના બનાવવામાં આવ્યું હોય;
  • ઉમેરાયેલ ફંક્શન mb_str_split(), str_split() જેવું જ છે, પરંતુ બાઇટ્સ સાથે નહીં પરંતુ મલ્ટી-બાઇટ સ્ટ્રિંગમાં કેરેક્ટર પોઝિશન સાથે ઓપરેટ કરે છે;
  • strip_tags() ફંક્શન હવે ટેગ નામો સાથે એરે પસાર કરવાની ક્ષમતા ધરાવે છે, એટલે કે. strip_tags($str, ' ') ને બદલે હવે તમે strip_tags($str, ['a', 'p']) નો ઉલ્લેખ કરી શકો છો;
  • proc_open() ઓપરેન્ડ્સને સ્ટ્રિંગ ચલાવવાને બદલે એરેમાં સૂચિબદ્ધ કરવાની મંજૂરી આપે છે, અને નલ ફાઇલ વર્ણનકર્તા માટે થ્રેડ રીડાયરેક્શન અને સપોર્ટ પણ પૂરો પાડે છે;

    proc_open(['php', '-r', 'echo "Hello World\n";'], $descriptors, $pipes);

    // શેલમાં 2>&1 જેવું
    proc_open($cmd, [1 => ['પાઇપ', 'w'], 2 => ['રીડાયરેક્ટ', 1]], $pipes);

    શેલમાં // જેમ 2>/dev/null અથવા 2>nul
    proc_open($cmd, [1 => ['પાઇપ', 'w'], 2 => ['નલ']], $pipes);

  • Firebird/Interbase, Recode અને WDDX એક્સટેન્શનને મૂળભૂત વિતરણમાંથી બાકાત રાખવામાં આવ્યા છે. આ એક્સ્ટેન્શન્સ હવે PECL દ્વારા વિતરિત કરવામાં આવે છે;
  • શ્રેણીમાં સ્થાનાંતરિત જૂના કૌંસ વિના નેસ્ટેડ ટર્નરી ઓપરેટર્સ, કર્લી કૌંસ (“$var{$idx}”) નો ઉપયોગ કરીને એરે તત્વો અને સ્ટ્રિંગ્સને ઍક્સેસ કરવા, is_real() ફંક્શન અને વાસ્તવિક પર કાસ્ટ કરવા જેવી સુવિધાઓ, પેરેન્ટ ક્લાસ વિના પેરેન્ટ કીવર્ડનો ઉપયોગ કરીને, પેરામીટર 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

એક ટિપ્પણી ઉમેરો