Konstruksi match

Konstruksi match muncul dalam PHP 8.0 dan menyediakan cara cabang yang lebih ringkas dan selamat berbanding dengan switch. Ia menerima ungkapan untuk perbandingan dan mengembalikan nilai syarat pertama yang sepadan. Berbeza dengan switch, match melakukan perbandingan ketat (===) dan tidak memerlukan break.

Sintaks

php$result = match ($value) {
  condition1 => result1,
  condition2 => result2,
  ...
  default => default_result
};

Contoh

Perbandingan nombor mudah:

php<?php
  $res = match (2) {
    1 => 'Satu',
    2 => 'Dua',
    3 => 'Tiga',
    default => 'Tidak diketahui'
  };
  echo $res;
?>

Keputusan pelaksanaan kod:

php'Dua'

Contoh

Perbandingan dengan beberapa syarat:

php<?php
  $age = 25;
  $res = match (true) {
    $age < 18 => 'Kanak-kanak',
    $age >= 18 && $age < 65 => 'Dewasa',
    $age >= 65 => 'Warga emas'
  };
  echo $res;
?>

Keputusan pelaksanaan kod:

php'Dewasa'

Contoh

Penggunaan dengan tatasusunan:

php<?php
  $arr = [1, 2, 3];
  $res = match ($arr) {
    [1, 2, 3] => 'Jujukan pertama',
    [4, 5, 6] => 'Jujukan kedua',
    default => 'Jujukan lain'
  };
  echo $res;
?>

Keputusan pelaksanaan kod:

php'Jujukan pertama'

Lihat juga

  • penyata switch,
    yang menyediakan cara cabang alternatif
  • fungsi if,
    yang melaksanakan penyataan bersyarat