Fungsi preg_last_error

Fungsi preg_last_error mengembalikan kod ralat terakhir, yang timbul semasa bekerja dengan fungsi untuk ungkapan biasa. Ini berguna untuk penyahpepijat ungkapan biasa, apabila fungsi seperti preg_match atau preg_replace mengembalikan false. Fungsi ini tidak menerima parameter.

Fungsi mengembalikan kod ralat integer. Untuk kemudahan, anda boleh membandingkan kod ralat dengan pemalar khas (lihat jadual di bawah).

Sintaks

phppreg_last_error(): int;

Jadual dengan Pemalar Ralat

Pemalar Nilai Keterangan
PREG_NO_ERROR 0 Tiada ralat berlaku
PREG_INTERNAL_ERROR 1 Ralat dalaman PCRE
PREG_BACKTRACK_LIMIT_ERROR 2 Had backtrack terlampaui (backtrack limit)
PREG_RECURSION_LIMIT_ERROR 3 Had rekursi terlampaui
PREG_BAD_UTF8_ERROR 4 Data UTF-8 tidak betul
PREG_BAD_UTF8_OFFSET_ERROR 5 Ofset tidak sepadan dengan permulaan kod UTF-8 yang betul
PREG_JIT_STACKLIMIT_ERROR 6 Had timbunan pengkompil JIT terlampaui

Contoh

Mari semak ralat selepas ungkapan biasa yang tidak betul:

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

Keputusan pelaksanaan kod:

php4

Contoh

Penggunaan dengan pemalar ralat PCRE:

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

Keputusan pelaksanaan kod:

php'Backtrack limit was exhausted'

Lihat juga

  • fungsi preg_match,
    yang melakukan carian mengikut ungkapan biasa
  • fungsi preg_replace,
    yang melakukan penggantian mengikut ungkapan biasa
  • fungsi preg_quote,
    yang melarikan aksara khas dalam ungkapan biasa