Stała

Z PHPEdia.pl
Skocz do: nawigacji, wyszukiwania

Stała jest to wartość zdefiniowana tylko jeden raz. Nie można jej po tym nadpisać ani usunąć (nie dotyczy magicznych stałych) w przeciwieństwie do zmiennej. Może przyjmować jedynie wartości typu string, integer, boolean, float.

Nazwy stałych z reguły pisze się WIELKĄ LITERĄ, oddzielając niekiedy słowa kładką(_) czy cyframi. Nie jest zabronione oczywiście używanie małych liter czy MiEszAnYch.

Definiowanie stałej typu string:

define("STALA_STRING",'wartość stałej string');

Aby uzyskać wartość stałej należy odwołać się do niej po nazwie np:

define("WYGRANA",'Brawo wygrałeś.');
define("PRZEGRANA",'Przykro mi ale przegrałeś.');
$iGraczA=10;
$iGraczK=rand(0,100);
if ($iGraczA>$iGraczK) echo WYGRANA; else
if ($iGraczA<$iGraczK) echo PRZEGRANA;

Jeżeli wartość zmiennej $iGraczK wyniesie 9 to wynik będzie następujący:

Brawo wygrałeś.

Nie można poprzedzić nazwy stałej znakiem dolara($) gdyż uczyni to ze stałej zmienną. Stała ma zasięg globalny

Jeżeli nie znamy nazwy stałej, bo jest ona np: zwracana przez funkcję lub przetrzymywana przez zmienną możemy jej wartość pobrać funkcją constant() jako parametr podając nazwę (zmienną z nazwą) np:

define("TEST",'Nie znana stała.');
$sNazwaStalej=TEST;
echo constant($sNazwaStalej);

Aby uzyskać listę wszystkich zdefiniowanych stałych użyj funkcji get_defined_constants();

Jeszcze jedna ważna rzecz. Jeżeli próbujemy użyć zmiennej której wcześniej nie zdefiniowaliśmy parser php pomyśli że próbujemy użyć wartości typu string (TEST="TEST") To samo tyczy się tablic jeżeli spróbujemy odwołać się do $aTab[ABC] a stała ABC nie będzie użyta nie uzyskamy wartości $aTab["ABC"];

Powyższe operacje wywalą nam błąd E_NOTICE.