A PHP –nek van egy beépített függvénye, ami ezt a fajta kódolást támogatja, ez az assert() függvény. Assert() ellenőrzi a függvény állapotát, mint például, hogy helyesek-e a paraméterek, és ennek érdekében cselekszik is. Az assert() elfogad sztring és boolean változókat is mint paraméter. A php.ini fájlban vannak az ellenőrzési opciók, amelyeket az assert_options() függvénnyel lehet beállítani. Tehát ez fogja meghatározni, hogy az assert() mit lépjen, ha hibát talál.
Opciók:
opció | ini paraméter | alapértelmezett érték | leírás |
---|---|---|---|
ASSERT_ACTIVE | assert.active | 1 | Engedélyezi az assert() kiértékelését |
ASSERT_WARNING | assert.warning | 1 | Minden hibánál figyelmeztet |
ASSERT_BAIL | assert.bail | 0 | Megszakítja a futtatást hiba esetén |
ASSERT_QUIET_EVAL | assert.quiet_eval | 0 | Kiiktatja a hibajelzést az ellenőrzés kifejezés-kiértékelései alatt |
ASSERT_CALLBACK | assert.callback | (NULL) | Egy felhasználói függvény, amelyet hiba esetén kell meghívni |
Szükséges megjegyeznem, hogy az assert() függvényt nem futás idejű hibák kezelésére szánták, tehát csak a fejlesztési szakaszban jó ellenőrzésre.
Egy másik módszer a defenzív kódolásra a beépített naplózás. Az error_log() függvény lehetőséget ad, hogy eltároljuk a hibaüzeneteket és figyelmeztetéseket, de ettől függetlenül fusson tovább a program.
int error_log(string message, int type [,string dest [,string headers]]) Az első paramétere a naplózandó információ, a második pedig a cím, ahová a naplózást el szeretnénk küldeni. Ez lehet a PHP –rendszer naplózója vagy fájlja (0), egy megadott email címen keresztül egy postafiókba (1), egy már létező fájlba (3) vagy a PHP hibajavító kapcsolatán keresztül egy távoli géphez (2).