PHP 7.4 programming mutauro kuburitswa

Mushure megore rebudiriro yakaunzwa programming language release PHP 7.4. Bazi idzva rinosanganisira nhevedzano yezvinhu zvitsva, pamwe neshanduko dzakati wandei dzinoputsa kuenderana.

Key kuvandudzika mu PHP 7.4:

  • Typed Properties - kirasi zvivakwa zvino inogona kusanganisira zviziviso zvemhando, semuenzaniso:

    kirasi Mushandisi {
    public int $id;
    tambo yeruzhinji $zita;
    }

  • Yakapfupikiswa syntax yekutsanangura mabasa "fn(parameter_list) => expr" ine scope inosunga nekukosha. Semuenzaniso, β€œfn($x) => $x + $y” inofanana neβ€œ$fn2 = function ($x) shandisa ($y) {dzorera $x + $y;}”);
  • Shorthand assignment operator "??=" iyo inogona kushandiswa kutsanangura kukosha kwakagara ("a ??= b" yakafanana ne "a = a ?? b", kana "a" ichitsanangurwa kukosha kwayo kunochengetwa, uye kana isina kutsanangurwa. inopihwa kukosha "b");
  • Limited mukana kuchengetedza nhaka yemhando dzemhando dzekudzoka, kana kugona kudzosera kumashure dhairekitori yemhando dzepakutanga mumhando dzenharo dzakatorwa (covariance return type uye nharo type contravariance). Izvi zvinotevera zvivakwa zvino zvinogona kushandiswa muPHP:

    kirasi A {}
    kirasi B inowedzera A {}

    kirasi Mugadziri {
    yeruzhinji basa nzira(): A {}
    }
    kirasi ChildProducer inowedzera Mugadziri {
    nzira yeruzhinji yebasa (): B {}
    }

  • Kusunungura mushandisi mukati mezvirongwa "... $ var", kubvumira ita kutsiva kwezvirongwa zviripo paunenge uchitsanangura rondedzero itsva;

    $zvikamu = ['apple', 'pear'];
    $fruits = ['bhanana', 'orange', …$parts, 'watermelon'];
    // ['bhanana', 'orange', 'apuro', 'pear', 'watermelon'];

  • Mukana inomiririrwa yenhamba huru ine delimiters munhamba literals (1_000_000_00);
  • tsigira weak links, izvo zvinokutendera kuti uchengetedze chirevo chechinhu, asi usavhare muunganidzi wemarara kubva pakudzima chinhu chakabatana;
  • itsva mashini chinhu serialization (musanganiswa we Serializable uye __sleep()/__wakeup()), iyo yakatsiva iyo Serializable interface, iyo inozoregwa;

    // Inodzosa rondedzero ine ese mastates echinhu;
    ruzhinji basa __serialize(): array;

    // Inodzoreredza mamiriro echinhu kubva pakurongwa
    ruzhinji basa __unserialize(yakarongwa $data): pasina;

  • Inobvumirwa kukanda kunze kubva kune imwe nzira __toString();
  • Yakawedzera rutsigiro rwekutanga kurodha chinhu kodhi cache. Yakawedzerwa parameter yekugadzirisa
    opcache.preload, kuburikidza iyo iwe unogona kutsanangura PHP script iyo ichaunganidzwa uye inomhanya kana server yatanga. Ichi chinyorwa chinogona kurodha opcode yemamwe mafaera kuburikidza nekubatanidzwa kwavo kwakananga kana kushandisa opcache_compile_file() basa;

  • Yakawedzera crc32c basa kune Hash yekuwedzera kuverenga macheki uchishandisa Castagnoli polynomial;
  • Yakawedzerwa rutsigiro kune password_hash () basa repassword hashing nzira argon2i uye argin2id, mukuitwa kweSodium raibhurari, kana PHP yakavakwa pasina libargon;
  • Yakawedzerwa basa mb_str_split(), yakafanana ne str_split(), asi kushanda kwete nemabhaiti asi ine zvinzvimbo zvehunhu mutambo ye-multi-byte;
  • Iyo strip_tags() basa ikozvino ine kugona kupfuudza rondedzero ine tag mazita, i.e. pachinzvimbo che strip_tags($str, ' ') unogona ikozvino kudoma strip_tags($str, ['a', 'p']);
  • proc_open () inobvumira operands kuverengerwa muhurongwa kwete tambo kuti imhanye, uye inopawo tambo redirection uye tsigiro yeisina faira descriptor;

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

    // Kunge 2>&1 mugoko
    proc_open($cmd, [1 => ['pombi', 'w'], 2 => ['redirect', 1]], $pombi);

    // kufanana 2>/dev/null kana 2> nul mugoko
    proc_open($cmd, [1 => ['pombi', 'w'], 2 => ['null']], $pombi);

  • Firebird/Interbase, Recode uye WDDX edzedzero hazvibatanidzwe kubva pakugovera kwekutanga. Aya ekuwedzera ave kugoverwa kuburikidza nePECL;
  • Kuendeswa kuchikamu zvechinyakare zvinhu zvakaita senge nested ternary opareta pasina maparentheses, kuwana array zvinhu uye tambo uchishandisa curly braces ("$ var{$idx}"), iyo is_real () basa uye kukanda kune chaiyo, uchishandisa izwi remubereki pasina kirasi yevabereki, parameter allow_url_include magadzirirwo. , uchishandisa array_key_exists() pazvinhu.

    Iwo mabasa get_magic_quotes_gpc(), get_magic_quotes_runtime(), uye
    hebrevc(), convert_cyr_string(), money_format(), ezmlm_hash(), restore_include_path(), ldap_control_paged_result_response(), ldap_control_paged_result(), ReflectionType::__toString().

    Yambiro pamusoro pekushandiswa kwechinyakare ficha yakapihwa paunenge uchiedza kugadzirisa zvisizvo zviratidzo mumabasa
    base_convert(), bindec(), octdec() uye hexdec(), uye kana uchitsanangura isiri-tambo pateni mumb_ereg_replace().

Source: opennet.ru

Voeg