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
?
|
|