pozycjonowanie Dodawarka do katalogów katalogowanie
Krótko po wydaniu PHP 3, w zimie 1998 Zeev Suraski oraz Andi Gutmans jeszcze raz zabrali się za przepisywanie kodu źródłowego PHP, korzystając z doświadczeń nabytych przy pracach nad poprzednią wersją. Za główne cele obrali poprawienie modułowości oraz wydajności złożonych aplikacji. Choć dotychczasowa wersja potrafiła sobie z nimi poradzić, nie była jednak stworzona do tego celu i przegrywała przez to z innymi rozwiązaniami.


wyszukiwarka mp3
Muzyczne utwory znanych wykonawców
Nowości muzyczne dostępne on-line
www.lapmuze.net
kamerzysta bydgoszcz
Filmy z wesel na różnych nośnikach
Profesjonalne filmowanie uroczystości
www.studiofilmuvideo.pl
Konferencyjne
Świetne miejsca na spotkania biznesowe
Obiekty do szkolenia pracowników firm
osrodkikonferencyjne.pl
Breloki RFID
Elektroniczne systemy identyfikacji
Magnetyczne karty i identyfikatory
smartag.pl


Generator bannerów
Zrób sobie banner szybko i za darmo
Prosty sposób na tworzenie bannerów
www.reklama-internetowa.com/banner/
GPS
Navigation GSP, system mobile and phone
Soft from gps, soft phone gps
www.pl-gps.com


Pojawił się całkowicie nowy model programowania obiektowego co spowodowało utratę pełnej kompatybilności z poprzednimi wersjami PHP. W ramach tego modelu, zmieniony został sposób reprezentacji obiektów. W wersjach wcześniejszych obiekt był jednocześnie zmienną, co sprawiało duże trudności, dlatego też w wersji 5 na wzór Javy zmienna obiektowa stała się jedynie referencją do właściwego obiektu. Operacja przypisania = powoduje jedynie powstanie drugiej referencji wskazującej na ten sam obiekt.

Rozdział 13. Stałe

Spis treści
Składnia
Magiczne 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 magicznymi stałymi, które na właściwie nie są stałymi). 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]*

Przykład 13-1. Prawidłowe i nieprawidłowe nazwy stałych

<?php
     
    
// Poprawne nazwy stałych
    
define("FOO",     "cokolwiek");
    
define("FOO2",    "cokolwiek innego");
    
define("FOO_BAR", "cokolwiek wiecej");
     
    
// Nieprawidłowa nazwa stałej
    
define("2FOO",    "cokolwiek");
     
    
// To jest prawidłowe, ale powinno być unikane:
    // PHP może pewnego dnia wprowdzić magiczą stałą
    // która spowoduje załamanie Twojego skryptu    
    
    
define("__FOO__", "cokolwiek");
     
    
?>

Notatka: Na nasze potrzeby, litery to a-z, A-Z, oraz znaki ASCII od 127 do 255 (0x7f-0xff).

Tak jak i superglobals, zasięg stałych jest globalny. Możesz odwołać się do stałych w dowolnym miejscu w Twojego skryptu, bez uważania na zasięg. Więcej informacji na temat zasięgu, przeczytasz w sekcji podręcznika zasięg zmiennych.

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, float i string) mogą być zawarte w stałych. Nie definiuj stałych typu zasób.

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, poprostu tak jakbyś wywołał ją jako string (STALA kontra "STALA"). Jeśli to nastąpi zostanie wygenerowany błąd z poziomu E_NOTICE. Zobacz także w podręczniku artykuł o tym dlaczego $foo[bar] jest błędne (chyba, że wcześniej zdefiniujesz define() bar jako stałą). Jeśli, chcesz sprawdzić czy stała jest ustawiona, użyj funkcji defined().

Różnice pomiędzy stałymi, a zmiennymi:

Przykład 13-2. Definiowanie stałych

<?php
define
("STALA", "Hello world!");
echo
STALA; // wyświetli "Hello world!"
echo Stala; // wyświetli "Stala" i zgłosi ostrzeżenie
?>

Patrz także Stałe klasowe.