Podręcznik PHP
Poprzedni |  | Następny

# Rozdział 13. 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 13-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