Nullsafe-operaattori ja union-tyypit
Käyttäkää ?->-operaattoria nullable-olioiden turvalliseen ketjutukseen ja määrittäkää union-tyyppivihjeitä.
Nullsafe-operaattori ja union-tyypit on ilmainen PHP Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu PHP Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. PHP Academy-kurssilla on yhteensä 4 oppituntia.
Nullsafe-operaattori
PHP 8.0 toi käyttöön ?->-operaattorin. Jos vasemmanpuoleinen arvo on null, koko ketju oikaistaan ja tulokseksi palautetaan null virheen heittämisen sijaan.
Ratkaistava ongelma
Ilman nullsafe-operaattoria nullable-olioiden ketjuttaminen vaatii paljon toistuvia null-tarkistuksia.
<?php
// Old way:
$city = null;
if ($user !== null && $user->getAddress() !== null) {
$city = $user->getAddress()->getCity();
}
// PHP 8 nullsafe:
$city = $user?->getAddress()?->getCity();Nullsafe-operaattori metodikutsuissa
Jokainen ketjun ?->-operaattori tarkistetaan erikseen. Ensimmäinen null oikaisee ketjun loppuosan.
<?php
$name = $order?->getCustomer()?->getName() ?? "Guest";Nullsafe-operaattori ominaisuuksien kanssa
Se toimii myös ominaisuuksien käytössä.
<?php
$zip = $user?->address?->zip;Nullsafe ei ohita sivuvaikutuksia
Jos nullsafe-ketju oikaistaan, ketjun myöhempiä metodikutsuja ei suoriteta — sivuvaikutuksia ei synny.
Union-tyypit
PHP 8.0:n union-tyyppien avulla voi ilmoittaa, että parametri, ominaisuus tai palautusarvo hyväksyy yhden useista tyypeistä.
<?php
function formatId(int|string $id): string {
return (string) $id;
}Esimerkkejä union-tyypeistä
Yleisiä käytännön union-tyyppejä:
<?php
function process(int|float $amount): float {
return (float) $amount;
}
function findUser(int|string $idOrEmail): ?User {
// search by ID or email
}Nullable-tyypit
?Type on lyhyt muoto kirjoitukselle Type|null — arvo voi olla kyseistä tyyppiä tai null.
<?php
function greet(?string $name): string {
return "Hello, ".($name ?? "stranger");
}null union-tyypeissä
Voitte sisällyttää null-arvon unioni-tyyppiin suoraan: int|string|null.
Intersection-tyypit (PHP 8.1)
PHP 8.1 lisäsi intersection-tyypit (A&B) — arvon on täytettävä kaikki tyypit samanaikaisesti. Niistä on hyötyä tyyppiturvallisessa riippuvuuksien injektoinnissa.
<?php
function process(Iterator&Countable $collection): void {
// $collection must be both Iterator AND Countable
}Tyypin pakotus vs strict_types
Ilman declare(strict_types=1)-määritystä PHP saattaa muuntaa arvoja, esimerkiksi merkkijonon "42" luvuksi 42. Tiukassa tilassa hyväksytään vain täsmälleen vastaavat tyypit.
Yhteenveto
Nullsafe-operaattori (?->) poistaa toistuvien null-tarkistusten tarpeen ketjuissa. Union-tyypit (int|string) mahdollistavat joustavat mutta tyyppiturvalliset funktioallekirjoitukset.
Pikatarkistus
Mitä nullsafe-operaattori palauttaa, jos jokin ketjun metodi palauttaa null-arvon?
Opi PHP tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 49
- Oppitunnit
- 195
Usein kysytyt kysymykset
Onko oppitunti ”Nullsafe-operaattori ja union-tyypit” ilmainen?
Kyllä – oppitunnin ”Nullsafe-operaattori ja union-tyypit” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko PHP Academy-kurssin, päivitä CoddyKit PROhon. PHP Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Nullsafe-operaattori ja union-tyypit”?
Käyttäkää ?->-operaattoria nullable-olioiden turvalliseen ketjutukseen ja määrittäkää union-tyyppivihjeitä. Harjoittelet PHP Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni PHP Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin PHP Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Nullsafe-operaattori ja union-tyypit”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä PHP Academy-oppitunnilla?
Kyllä. Jokainen PHP Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Match-lauseke ja nimetyt argumentit
- Nullsafe-operaattori ja union-tyypit
- Luettelot (enumit)
- Fiberit: yhteistoiminnallinen rinnakkaisuus