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ֆունկցիան,
որը էկրանավորում է հատուկ նիշերը կանոնավոր արտահայտություններում