Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
208 of 410 menu

Функцыя preg_last_error

Функцыя preg_last_error вяртае код апошняй памылкі, якая ўзнікла пры працы з функцыямі для працы з рэгулярнымі выразамі. Гэта карысна для адладкі рэгулярных выразаў, калі функцыі накшталт preg_match або preg_replace вяртаюць false. Функцыя не прымае параметраў.

Функцыя вяртае цэлалікавы код памылкі. Для зручнасці можна параўноўваць код памылкі са спецыяльнымі канстантамі (гл. табліцу ніжэй).

Сінтаксіс

preg_last_error(): int;

Табліца з канстантамі памылак

Канстанта Значэнне Апісанне
PREG_NO_ERROR 0 Памылак не адбылося
PREG_INTERNAL_ERROR 1 Унутраная памылка PCRE
PREG_BACKTRACK_LIMIT_ERROR 2 Перавышаны ліміт адваротнага адсочвання (backtrack limit)
PREG_RECURSION_LIMIT_ERROR 3 Перавышаны ліміт рэкурсіі
PREG_BAD_UTF8_ERROR 4 Некарэктныя UTF-8 дадзеныя
PREG_BAD_UTF8_OFFSET_ERROR 5 Зрушэнне не адпавядае пачатку карэктнага UTF-8 кода
PREG_JIT_STACKLIMIT_ERROR 6 Перавышаны ліміт стэка JIT-кампілятара

Прыклад

Праверым памылку пасля некарэктнага рэгулярнага выразу:

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

Вынік выканання кода:

4

Прыклад

Выкарыстанне з канстантамі памылак PCRE:

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

Вынік выканання кода:

'Backtrack limit was exhausted'

Глядзіце таксама

  • функцыю preg_match,
    якая выконвае пошук па рэгулярным выразе
  • функцыю preg_replace,
    якая выконвае замену па рэгулярным выразе
  • функцыю preg_quote,
    якая экрануе спецыяльныя сімвалы ў рэгулярных выразах
byenru