Kazi preg_last_error
Kazi preg_last_error hurudisha msimbo wa hitilafu ya mwisho,
iliyotokea wakati wa kufanya kazi na kazi za kushughulika na misemo ya kawaida.
Hii ni muhimu kwa utatuzi wa hitilafu wa misemo ya kawaida, wakati kazi
kama preg_match au preg_replace zikirudisha false.
Kazi haikubii vigezo.
Kazi hurudisha msimbo mzima wa hitilafu. Kwa urahisi, unaweza kulinganisha msimbo wa hitilafu na viunga maalum (angalia jedwali hapa chini).
Syntaxi
preg_last_error(): int;
Jedwali lenye viunga vya hitilafu
| Kiwango | Thamani | Maelezo |
|---|---|---|
PREG_NO_ERROR |
0 | Hakuna hitilafu iliyotokea |
PREG_INTERNAL_ERROR |
1 | Hitilafu ya ndani ya PCRE |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Kikomo cha kufuatilia nyuma (backtrack limit) kimezidiwa |
PREG_RECURSION_LIMIT_ERROR |
3 | Kikomo cha kujirudia kimezidiwa |
PREG_BAD_UTF8_ERROR |
4 | Data isiyo sahihi ya UTF-8 |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Mabadiliko hayalingani na mwanzo wa msimbo sahihi wa UTF-8 |
PREG_JIT_STACKLIMIT_ERROR |
6 | Kikomo cha stack cha JIT compiler kimezidiwa |
Mfano
Tuangalie hitilafu baada ya usemi wa kawaida usio sahihi:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Matokeo ya utekelezaji wa msimbo:
4
Mfano
Matumizi na viunga vya hitilafu za PCRE:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Matokeo ya utekelezaji wa msimbo:
'Backtrack limit was exhausted'
Angalia pia
-
kazi
preg_match,
ambayo hufanya utafutaji kulingana na usemi wa kawaida -
kazi
preg_replace,
ambayo hufanya badala kulingana na usemi wa kawaida -
kazi
preg_quote,
ambayo huinua alama maalum katika misemo ya kawaida