Fungsi preg_last_error

Fungsi preg_last_error mengembalikan kode kesalahan terakhir, yang terjadi selama bekerja dengan fungsi-fungsi untuk menangani ekspresi reguler. Ini berguna untuk debugging ekspresi reguler ketika fungsi seperti preg_match atau preg_replace mengembalikan false. Fungsi tidak menerima parameter.

Fungsi mengembalikan kode kesalahan bertipe integer. Untuk kemudahan, kode kesalahan dapat dibandingkan dengan konstanta khusus (lihat tabel di bawah).

Sintaks

phppreg_last_error(): int;

Tabel dengan Konstanta Kesalahan

Konstanta Nilai Deskripsi
PREG_NO_ERROR 0 Tidak terjadi kesalahan
PREG_INTERNAL_ERROR 1 Kesalahan internal PCRE
PREG_BACKTRACK_LIMIT_ERROR 2 Batas pelacakan balik (backtrack limit) terlampaui
PREG_RECURSION_LIMIT_ERROR 3 Batas rekursi terlampaui
PREG_BAD_UTF8_ERROR 4 Data UTF-8 tidak valid
PREG_BAD_UTF8_OFFSET_ERROR 5 Offset tidak sesuai dengan awal kode UTF-8 yang valid
PREG_JIT_STACKLIMIT_ERROR 6 Batas stack kompilator JIT terlampaui

Contoh

Mari periksa kesalahan setelah ekspresi reguler yang tidak valid:

php<?php
  preg_match('/invalid(regex/', 'test');
  $error_code = preg_last_error();
  echo $error_code;
?>

Hasil eksekusi kode:

php4

Contoh

Penggunaan dengan konstanta kesalahan PCRE:

php<?php
  preg_match('/(?:\D+/', 'abc123');
  if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
    echo 'Backtrack limit was exhausted';
  }
?>

Hasil eksekusi kode:

php'Backtrack limit was exhausted'

Lihat Juga

  • fungsi preg_match,
    yang melakukan pencarian berdasarkan ekspresi reguler
  • fungsi preg_replace,
    yang melakukan penggantian berdasarkan ekspresi reguler
  • fungsi preg_quote,
    yang meng-escape karakter khusus dalam ekspresi reguler