Podręcznik PHP
Poprzedni
Następny
Rozdział 9.
Stałe
Stała jest identyfikatorem (nazwą) dla prostej wartości.
Jak sama nazwa wskazuje, wartość ta nie może się zmieniać podczas działania skryptu (poza wyjątkami: __FILE__ i __LINE__).
Domyślnie, przy stałych uwzględniana jest wielkość liter.
Przyjęto, że stałe są pisane dużymi literami.
Nazwa stałej podlega takim samym zasadom jak każda inna w PHP.
Prawidłowa nazwa stałej rozpoczyna się literą, znakiem podkreślenia ("_"), następnie mogą występować litery, cyfry lub znaki podkreślenia.
Dobrze reprezentuje to takie wyrażenie regularne: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff ]*
Notatka:
Na nasze potrzeby, litery to a-z, A-Z, oraz znaki ASCII od 127 do 255 (0x7f-0xff).
Zakres stałej jest globalny.
Składnia
Możesz definiować stałą używając funkcji define().
Kiedy stała zostanie zdefiniowana, nie może być już zmieniona albo undefined.
Tylko skalarne typy danych (boolean, integer, double i string) mogą być zawarte w stałych.
Możesz użyć wartości stałej poprzez zwykłe użycie jej nazwy.
Inaczej niż przy zmiennych, w stałych NIE powinieneś prepend stałej znakiem $.
Możesz także użyć funkcji constant(), aby odczytać wartość stałej, której nazwa jest przekazywana dynamicznie.
Użyj funkcji get_defined_constants() aby otrzymać listę zdefiniowanych stałych.
Notatka:
Stałe i globlane zmienne są pisane inaczej, a to oznacza, że np.
TRUE i $TRUE są różne.
Jeśli użyjesz niezdefiniowanej stałej, PHP przyjmuje, że chcesz użyć nazwy stałej samej w sobie.
Zostanie wtedy wysłane ostrzeżenie.
Użyj funkcji defined() jeśli chcesz się dowiedzieć czy stała jest zdefiniowana.
Różnice pomiędzy stałymi, a zmiennymi:
Stałe nie mają znaku dolara ($) przed nazwą;
Stałe mogą być definiowane oraz używane wszędzie bez zważania na zasady dotyczące zakresu ich dostępności;
Stałe nie mogą być redefiniowane lub undefined po tym jak raz zostały zdefiniowane; i
Stałe mogą zawierać tylko wartości skalarne.
Przykład 9-1.
Definiowanie stałych
?php define( "STALA", "Hello world !"); echo STALA; / / wyświetli "Hello world! "echo Stala; / / wyświetli "Stala" i zgłosi ostrzeżenie?
Poprzedni
Spis treści
Następny
Zmienne spoza PHP
Początek rozdziału
Predefiniowane stałe