Nullsafe-operatoren og unionstyper
Bruk ?-> til å lenke nullable objekter på en sikker måte, og deklarer unionstyper.
Nullsafe-operatoren og unionstyper er en gratis leksjon i PHP Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i PHP Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i PHP Academy inneholder totalt 4 leksjoner.
Nullsafe-operatoren
PHP 8.0 introduserte ?->. Hvis venstresiden er null, avsluttes hele kjeden og returnerer null i stedet for å kaste en feil.
Problemet den løser
Uten nullsafe krever kjeding av nullable objekter omfattende null-kontroller.
<?php
// Old way:
$city = null;
if ($user !== null && $user->getAddress() !== null) {
$city = $user->getAddress()->getCity();
}
// PHP 8 nullsafe:
$city = $user?->getAddress()?->getCity();Nullsafe med metodekall
Hver ?-> i kjeden kontrolleres uavhengig. Den første null-verdien avslutter resten av kjeden.
<?php
$name = $order?->getCustomer()?->getName() ?? "Guest";Nullsafe med egenskaper
Det fungerer også med tilgang til egenskaper.
<?php
$zip = $user?->address?->zip;Nullsafe hopper ikke over bivirkninger
Hvis nullsafe-kjeden avsluttes tidlig, blir ikke påfølgende metodekall i kjeden utført – ingen bivirkninger utløses.
Unionstyper
Med unionstyper i PHP 8.0 kan du deklarere at en parameter, egenskap eller returverdi godtar én av flere typer.
<?php
function formatId(int|string $id): string {
return (string) $id;
}Eksempler på unionstyper
Vanlige unionstyper i praksis:
<?php
function process(int|float $amount): float {
return (float) $amount;
}
function findUser(int|string $idOrEmail): ?User {
// search by ID or email
}Nullable typer
?Type er en kortform for Type|null – verdien kan være av denne typen eller være null.
<?php
function greet(?string $name): string {
return "Hello, ".($name ?? "stranger");
}null i unionstyper
Du kan inkludere null eksplisitt i en unionstype: int|string|null.
Interseksjonstyper (PHP 8.1)
PHP 8.1 la til interseksjonstyper (A&B) – verdien må oppfylle alle typene samtidig. Dette er nyttig for typesikker avhengighetsinjisering.
<?php
function process(Iterator&Countable $collection): void {
// $collection must be both Iterator AND Countable
}Typekonvertering kontra strict_types
Uten declare(strict_types=1) kan PHP konvertere verdier automatisk (for eksempel «42» til 42). Med streng modus godtas bare eksakte typesamsvar.
Sammendrag
Nullsafe-operatoren (?->) eliminerer gjentatte null-kontroller i kjeder. Unionstyper (int|string) gir fleksible, men typesikre, funksjonssignaturer.
Hurtigsjekk
Hva returnerer nullsafe-operatoren hvis en metode i kjeden returnerer null?
Lær deg PHP med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 49
- Leksjoner
- 195
Ofte stilte spørsmål
Er leksjonen «Nullsafe-operatoren og unionstyper» gratis?
Ja – hele teksten i «Nullsafe-operatoren og unionstyper» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av PHP Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i PHP Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Nullsafe-operatoren og unionstyper»?
Bruk ?-> til å lenke nullable objekter på en sikker måte, og deklarer unionstyper. Du øver på PHP Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med PHP Academy?
Ingen tidligere erfaring er nødvendig. PHP Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.
Hvor lang tid tar leksjonen «Nullsafe-operatoren og unionstyper»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne PHP Academy-leksjonen?
Ja. Alle PHP Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Match-uttrykk og navngitte argumenter
- Nullsafe-operatoren og unionstyper
- Enumerasjoner (Enums)
- Fibers: Samarbeidsbasert samtidighet