A PHP programozási nyelv

Helyesség

assert

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.

function ArrayAverage($aArray){
$aTotal = 0;
assert(’is_array($aArray)’); //Egyszeres idézőjelet kell használni, hogy PHP ne fejtse ki változót
foreach($aArray as $aElement){
assert(’is_numeric($aElement)’);
$aTotal+=$aElement;
}
return ($aTotal/count($aArray));
}

error_log

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).