8. Fejezet. Konstansok

A PHP számos konstanst definiál, és mechanizmust biztosít, hogy mi is futás közben definiáljunk még többet. A konstansok olyanok, mint a változók, azt a két dolgot kivéve, hogy a konstansokat a define() függvénnyel hozhatók létre, és később nem módosíthatók.

Az mindig elérhető előre definiált konstansok:

__FILE__

A script file neve. Ha egy olyan file-on belül használjuk, amelyet include-oltunk, vagy require-ral rakjuk be, akkor az include-olt file nevét kapjuk, nem a futtatott scriptét.

__LINE__

Az aktuális scripten belüli sor száma. Ha includdal, vagy require-ral behívott file-ra alkalmazzuk, az include-olt file-on belüli pozíciót kapjuk.

PHP_VERSION

Az alkalmazott PHP verziószáma (string). Pl.: '3.0.8-dev'.

PHP_OS

Az operációs rendszer, ami alatt a PHP fut, pl.: 'Linux'.

TRUE

Igaz érték.

FALSE

Hamis érték.

E_ERROR

Egy nem feldolgozás során keletkezett helyrehozhatatlan hibát jelez.

E_WARNING

Egy olyan állapotot jelez, amiben a PHP tudja, hogy valami nincs rendben, de folytatja a működést, mert a script kijavíthatja a hibát. Ennek egy példája lehet egy érvénytelen reguláris kifejezés az ereg()-ben.

E_PARSE

A parser meghalt a scriptbeli érvénytelen szintaxis miatt; helyrehozhatatlan hiba.

E_NOTICE

Valami történt, ami lehet, hogy hiba, de lehet, hogy nem :) A végrehajtás folytatódik. [lehet, hogy formázza a vinyódat, lehet, hogy nem :)] Ilyenre példa egy idézőjelek nélküli string, mint hashindex, vagy egy változó elérése, amelynek még nem adtunk értéket.

E_ALL

Minden E_* formátumú konstans egyben. Ha az error_reporting() függvénnyel használják, akkor tetszőleges típusú hiba fellépését jelezni fogja a PHP.

Az E_* formátumú konstansokat tipikusan az error_reporting() függvény használja, hogy a hibajelzési szintet állítsa.

A define() függvény segítségével további konstansokat definiálhatunk...

Vigyázz, mert ezek konstansok, nem C-szerű makrók; csak érvényes skalár szerepelhet bennük.

Példa 8-1. Konstans definiálása

  1 
  2 
  3 <?php
  4 define("CONSTANT", "Üdvözöllek dicső lovag, szép a ruhád, szép a lovad.");
  5 echo CONSTANT; // kiírja hogy Üdvözöllek...
  6 ?>
  7 
  8      

Példa 8-2. A __FILE__ és a __LINE__ használata

  1 
  2 
  3 <?php
  4 function report_error ($file, $line, $message) {
  5     echo "hiba történt a $file fileban a $line sorban: $message.";
  6 }
  7 
  8 report_error (__FILE__,__LINE__, "Gáz van!");
  9 ?>
 10 
 11