PHP Academy · leksjon

Nullsafe-operatoren og unionstyper

Bruk ?-> til å lenke nullable objekter på en sikker måte, og deklarer unionstyper.

Leksjon 2 av 413 trinn

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?

Gratis å komme i gang

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

  1. Match-uttrykk og navngitte argumenter
  2. Nullsafe-operatoren og unionstyper
  3. Enumerasjoner (Enums)
  4. Fibers: Samarbeidsbasert samtidighet
← Tilbake til PHP Academy