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
preg_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
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Hasil eksekusi kode:
4
Contoh
Penggunaan dengan konstanta kesalahan PCRE:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Hasil eksekusi kode:
'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