Konstruksie match

Die konstruksie match het in PHP 8.0 verskyn en bied 'n meer bondige en veiliger manier van vertakking in vergelyking met switch. Dit neem 'n uitdrukking vir vergelyking en gee die waarde van die eerste ooreenstemmende voorwaardes terug. Anders as switch, voer match 'n streng vergelyking (===) uit en vereis nie break nie.

Sintaksis

php$resultaat = match ($waarde) {
  voorwaarde1 => resultaat1,
  voorwaarde2 => resultaat2,
  ...
  default => verstek_resultaat
};

Voorbeeld

Eenvoudige ooreenstemming van 'n nommer:

php<?php
  $result = match (2) {
    1 => 'Een',
    2 => 'Twee',
    3 => 'Drie',
    default => 'Onbekend'
  };
  echo $result;
?>

Resultaat van kode-uitvoering:

php'Twee'

Voorbeeld

Ooreenstemming met verskeie voorwaardes:

php<?php
  $ouderdom = 25;
  $result = match (true) {
    $ouderdom < 18 => 'Kind',
    $ouderdom >= 18 && $ouderdom < 65 => 'Volwassene',
    $ouderdom >= 65 => 'Senior'
  };
  echo $result;
?>

Resultaat van kode-uitvoering:

php'Volwassene'

Voorbeeld

Gebruik met skikkings:

php<?php
  $skikking = [1, 2, 3];
  $result = match ($skikking) {
    [1, 2, 3] => 'Eerste volgorde',
    [4, 5, 6] => 'Tweede volgorde',
    default => 'Ander volgorde'
  };
  echo $result;
?>

Resultaat van kode-uitvoering:

php'Eerste volgorde'

Sien ook

  • operateur switch,
    wat 'n alternatiewe manier van vertakking bied
  • funksie if,
    wat voorwaardelike stellings uitvoer