Go achomair: Thug PHP 8.0 (Samhain 2020) argóintí ainmnithe, tréithe, cineálacha union, match, an t-oibreoir nullsafe agus tiomsaitheoir JIT. Ina dhiaidh sin tháinig leagan gach bliain: 8.1 le enums agus Fibers, 8.2 le ranganna readonly, 8.3 le tairisigh aicme clóscríofa, 8.4 le Property Hooks agus 8.5 leis an oibreoir píopa agus an eisínteacht URI. Cuireann gach leagan seanrudaí i dtreis freisin. Dá bhrí sin, tá tábhacht le tástálacha agus uasghrádú, agus don tslándáil is tábhachtaí brainse tacaithe a oibriú le staid phaiste cothrom le dáta.
Nuachtaí PHP 8 i mbreathnú
Tugann an tábla achoimre ar phríomhphointí leathanaigh eisiúna php.net. Dátaí an chéad fhoilsithe de réir php.net.
| Leagan | Foilsithe | Na nuachtaí is tábhachtaí | Rogha dímholtaí agus briseadh |
|---|---|---|---|
| 8.0 | 26.11.2020 | argóintí ainmnithe, tréithe, Constructor Property Promotion, cineálacha union, match, ?->, JIT |
is false anois 0 == 'foobar', earráidí cineáil in ionad rabhaidh |
| 8.1 | 25.11.2021 | enums, airíonna readonly, First-Class-Callables strlen(...), new in tosaitheoirí, cineálacha Intersection, never, Fibers |
– |
| 8.2 | 08.12.2022 | ranganna readonly, cineálacha DNF, null/false/true mar chineálacha, eisínteacht Random, tairisigh i traits, #[\SensitiveParameter] |
airíonna dinimiciúla dímholta |
| 8.3 | 23.11.2023 | tairisigh aicme clóscríofa, #[\Override], json_validate(), mb_str_pad(), php -l do roinnt comhad |
– |
| 8.4 | 21.11.2024 | Property Hooks, infheictheacht neamhshiméadrach, #[\Deprecated], API DOM nua le HTML5, BcMath\Number, array_find(), Lazy Objects |
paraiméadair nullable intuigthe dímholta; IMAP, OCI8, PDO_OCI, pspell go PECL |
| 8.5 | 20.11.2025 | oibreoir píopa, eisínteacht URI, Clone With, #[\NoDiscard], array_first()/array_last() |
oibreoir backtick dímholta, disable_classes bainte |
PHP 8.0 agus 8.1: an chéim mhór
Rinne PHP 8.0 an teanga níos dírí agus níos léiritheach. De réir an leathanaigh eisiúna, caitheann feidhmeanna inmheánacha TypeError nó ValueError anois go comhsheasmhach in ionad rabhaidh a thabhairt amháin. Leanann comparáidí idir uimhreacha agus teaghráin rialacha níos glaine.
<?php
// PHP 8.0: déanann match comparáid dhocht agus ní theastaíonn break uaidh
$status = 404;
echo match (true) {
$status >= 500 => 'Serverfehler',
$status >= 400 => 'Anfragefehler',
default => 'in Ordnung',
};
// PHP 8.0: oibreoir nullsafe
$land = $bestellung?->kunde?->adresse?->land;
Thug PHP 8.1 enums, is é sin cineálacha áirimh le luachanna seasta, agus airíonna readonly nach féidir a shocrú ach uair amháin:
<?php
enum Rolle: string {
case Leser = 'leser';
case Redakteur = 'redakteur';
case Admin = 'admin';
}
final class Benutzer {
public function __construct(
public readonly string $name,
public readonly Rolle $rolle,
) {}
}
$b = new Benutzer('Erika', Rolle::from('redakteur'));
Caitheann Rolle::from() earráid i gcás luachanna anaithnide. Cuireann sé sin cosc ar theaghráin treallacha ó fhoirmeacha sleamhnú tríd mar ról. An té a bhfuil luach folamh de dhíth air in ionad earráide, úsáideann sé Rolle::tryFrom(), a thugann null ar ais i gcás luachanna anaithnide.
Nua i 8.1 freisin tá Fibers, bunús do shreafaí comhthráthacha ar a dtógann leabharlanna d'fheidhmiú asioncrónach. I ngnáthoibriú suímh gréasáin is beag a thugtar faoi deara, ach i bhfráma-oibreacha nua-aimseartha agus i scuaineanna is cinnte go dtugtar.
PHP 8.2 agus 8.3: glanadh agus cosaint
Dhímholadh airíonna dinimiciúla le PHP 8.2. An té a shannann airí neamhdhearbhaithe d'oibiacht, faigheann sé leid; le #[\AllowDynamicProperties] is féidir é sin a cheadú do ranganna aonair. Dá bhrí sin cruthaíonn seanbhreiseáin a lán teachtaireachtaí sa log go minic.
Tá spéis don tslándáil sa eisínteacht Random nua, a n-úsáideann a randamóir caighdeánach gineadóir randamach sábháilte go cripteagrafach de réir an leathanaigh eisiúna, agus sa tréith #[\SensitiveParameter], a cheileann luachanna ar nós pasfhocal i stacktraces. Tuilleadh faoi luachanna randamacha sábháilte ag Uimhreacha randamacha sábháilte agus comharthaí i PHP.
Chuir PHP 8.3 tairisigh aicme clóscríofa leis, an tréith #[\Override] i gcoinne earráidí clóscríofa agus modhanna á bhforscríobh, agus json_validate(), a sheiceálann JSON gan é a dhíchódú go hiomlán.
PHP 8.4 agus 8.5: modhanna teanga nua-aimseartha
Thug PHP 8.4 isteach Property Hooks, is é sin loighic go díreach ar airíonna, agus infheictheacht neamhshiméadrach ar nós public private(set). Tháinig API DOM nua le tacaíocht HTML5 agus feidhmeanna ar nós array_find(), array_any() agus array_all() leo sin. De réir an leathanaigh eisiúna, aistríodh na heisínteachtaí IMAP, OCI8, PDO_OCI agus pspell ón gcroí go PECL. Teastaíonn pacáiste ar leith ó fheidhmchláir a úsáideann IMAP, mar shampla.
Thug PHP 8.5 an t-oibreoir píopa, a nascann glaonna ó chlé go deas:
<?php
$slug = ' Neue Produkte 2026 '
|> trim(...)
|> strtolower(...)
|> (fn(string $s): string => str_replace(' ', '-', $s));
// Toradh: "neue-produkte-2026"
Nua freisin tá eisínteacht URI a bhriseann seoltaí síos de réir RFC 3986 agus caighdeán URL WHATWG. Tá sé seo ábhartha don tslándáil, mar is cúis aitheanta le seiceálacha a sheachbhóthar iad URLanna a pharsáiltear go neamhchomhsheasmhach. Tá an t-oibreoir backtick, mar ghearrfhoirm de shell_exec(), dímholta, bainadh an socrú disable_classes. An té a d'úsáid iad, ba cheart dó a chruatúchán a oiriúnú.
Nuachtaí, uasghráduithe agus PHP2Shell
Ní dhúnann feidhmeanna nua teanga leochaileachtaí san ateangaire. I gcoinne PHP2Shell ní chabhraíonn ach staid phaiste reatha an bhrainse ábhartha: 8.5.12, 8.4.27, 8.3.36 nó 8.2.35. Do PHP 8.1 agus 8.0 níl aon nuashonruithe oifigiúla ann a thuilleadh. An té a bhfuil sé greamaithe ansin, ní mór dó uasghrádú, agus ní chabhraíonn na nuachtaí leis ach go gann, ach cabhraíonn na briseadh go mór.
Bealach slán uasghrádaithe i gcúig chéim:
- An sprioc-leagan a shocrú, de réir riachtanais an chórais ón monaróir agus an timthrialla eisiúna.
- Spleáchais trí Composer agus breiseáin a thabhairt go staid chomhoiriúnach.
- An cód a sheiceáil le hanailís statach agus tástálacha i gcoinne an sprioc-leagain.
- Triail a bhaint as i dtimpeallacht tástála le cóip de na sonraí táirgeachta, logaí a mheas le haghaidh dímholtaí.
- Aistriú, gach próiseas PHP a atosú agus an staid a dhoiciméadú.
Tá cúlra faoi chineálacha ag An córas cineálacha de chuid PHP.
Conas a chabhraíonn PHP SOS go praiticiúil?
- Comhoiriúnacht a sheiceáil: Déanaimid anailís ar do chód agus ar d'eisínteachtaí le haghaidh briseadh don sprioc-leagan.
- Uasghrádú a dhéanamh: Leis an imirce go leagan PHP tacaithe ardaímid feidhmchláir go tástáilte.
- Cruatúchán a oiriúnú: Cuirimid roghanna éifeachtacha in ionad socruithe bainte ar nós
disable_classes. - Staid phaiste a choinneáil: Tar éis an uasghrádaithe coinnímid an brainse cothrom le dáta agus cruthaímid gach atosú.
Ceisteanna coitianta
Cén leagan de PHP 8 ba cheart dom a úsáid inniu?
Do thionscadail nua PHP 8.4 nó 8.5, mar go bhfaigheann siad tacaíocht is faide: 8.4 go deireadh 2028, 8.5 go deireadh 2029. Is é an rud is tábhachtaí ná cad a thacaíonn do fheidhmchlár leis de réir riachtanais an chórais ón monaróir. Críochnaíonn PHP 8.2 an 31 Nollaig 2026.
Cad a bhriseann is minice agus tú ag aistriú ó PHP 7.4 go PHP 8?
Is minic gur seiceálacha cineáil níos doimhne iad: caitheann feidhmeanna inmheánacha TypeError nó ValueError i PHP 8 in ionad rabhaidh amháin a thabhairt. Tagann comparáidí athraithe idir uimhreacha agus teaghráin chun solais freisin. Aimsíonn anailís statach agus tástálacha an chuid is mó roimh ré.
An ndéanann an JIT mo shuíomh gréasáin níos tapúla?
Is beag de ghnáth. De réir leathanach eisiúna PHP 8.0, tá feidhmíocht feidhmchlár gréasáin tipiciúil thart ar leibhéal PHP 7.4, agus is féidir le tascanna ríomhaireachta troma tairbhe shuntasach a bhaint as. Ó PHP 8.4 i leith tá an JIT múchta de réir réamhshocraithe.
Cé na nuachtaí a chabhraíonn leis an tslándáil?
Ina measc, an eisínteacht Random nua i PHP 8.2 le caighdeán sábháilte go cripteagrafach, an tréith SensitiveParameter i gcoinne pasfhocal i stacktraces, enums agus airíonna readonly le haghaidh sonraí níos soiléire, chomh maith leis na hearráidí cineáil níos comhsheasmhaí ó PHP 8.0.