Funksiya preg_last_error

Funksiya preg_last_error regular ifadələrlə işləyən funksiyaların işləməsi zamanı yaranan son xətanın kodunu qaytarır. Bu, preg_match və ya preg_replace kimi funksiyalar false qaytardıqda regular ifadələri saxlamaq üçün faydalıdır. Funksiya heç bir parametr qəbul etmir.

Funksiya tam ədəd xəta kodu qaytarır. Rahatlıq üçün xəta kodunu xüsusi sabitlərlə müqayisə etmək olar (aşağıdakı cədvələ baxın).

Sintaksis

phppreg_last_error(): int;

Xəta sabitləri cədvəli

Sabit Dəyər Təsvir
PREG_NO_ERROR 0 Xəta baş vermədi
PREG_INTERNAL_ERROR 1 PCRE daxili xətası
PREG_BACKTRACK_LIMIT_ERROR 2 Geri izləmə limiti aşıldı (backtrack limit)
PREG_RECURSION_LIMIT_ERROR 3 Rekursiya limiti aşıldı
PREG_BAD_UTF8_ERROR 4 Səhv UTF-8 məlumatı
PREG_BAD_UTF8_OFFSET_ERROR 5 Ofset düzgün UTF-8 kodunun başlanğıcına uyğun gəlmir
PREG_JIT_STACKLIMIT_ERROR 6 JIT kompilyatorunun yığın limiti aşıldı

Nümunə

Səhv regular ifadədən sonra xətanı yoxlayaq:

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

Kodun icrasının nəticəsi:

php4

Nümunə

PCRE xəta sabitləri ilə istifadə:

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

Kodun icrasının nəticəsi:

php'Backtrack limit was exhausted'

Həmçinin baxın

  • funksiyanı preg_match,
    regular ifadəyə görə axtarış edir
  • funksiyanı preg_replace,
    regular ifadəyə görə əvəzetmə edir
  • funksiyanı preg_quote,
    regular ifadələrdə xüsusi simvolları qoruyur