Stałe w PHP — praktyczny i kompletny przewodnik

Co to są stałe w PHP? Stałe w PHP, podobnie jak zmienne w PHP, służą do przechowywania danych. Na tym jednak podobieństwa się kończą. Różnią je składnia, sposób użycia, i zastosowania. W tym rozdziale dowiesz się wszystkiego o stałych w PHP — jak je tworzyć, po co je tworzyć i jak się nimi posługiwać.

Zacznę od być może najbardziej nurtującego Cię pytania. Kiedy należy używać stałych? Odpowiedź jest bardzo prosta — stałych należy używać do definiowania wartości, które nie zmieniają się w trakcie działania skryptu lub w ogóle nigdy się nie zmieniają.

Doskonałym przykładem jest liczba Pi, której wartość nigdy się nie zmienia. Dlatego, jeśli chcesz używać przybliżonej wartości tej liczby, możesz zdefiniować stałą o nazwie PI i ją w niej zapisać. Mam jednak dla Ciebie dobrą wiadomość, w PHP jest dostępna stała o nazwie M_PI, która reprezentuje właśnie tę wartość.

Krótko mówiąc, jeśli chcesz używać jakiejś niezmiennej wartości w PHP, zapisz ją w stałej.

Jaka jest różnica między stałą a zmienną

Zanim przejdziemy do praktycznych konkretów, czyli sposobów definiowania i użycia stałych w PHPs, przeanalizujemy różnice między stałymi i zmiennymi w tym języku.

Po pierwsze, inaczej niż w przypadku zmiennych PHPPHP, nazw stałych nie poprzedza się znakiem dolara, dlatego w kodzie PHP niejednokrotnie możesz natknąć się na instrukcje w tym rodzaju:


echo PHP_VERSION;

Ta instrukcja wyświetla numer aktualnie używanej wersji PHP, która jest zapisana w predefiniowanej stałej o nazwie PHP_VERSION.

Po drugie, stałych nie można usuwać. Jeśli w skrypcie zdefiniujemy stałą, to nie możemy w innej części tego skryptu usunąć jej definicji za pomocą funkcji w rodzaju unset(), która usuwa zmienne PHP.

Po trzecie, czy wiesz jaki jest zasięg stałych w PHP? Stałe w tym języku automatycznie mają globalny zakres dostępności w obrębie skryptu. Można ich używać podobnie, jak zmiennych superglobalnych, w dowolnym miejscu.

To tyle, jeśli chodzi o różnice między stałymi i zmiennymi w PHP. Teraz pokażę Ci, jak definiować stałe oraz jak ich używać. Zacznę od objaśnienia kwestii nazewnictwa.

Nazwy stałych w PHP

Stała PHP jest prostym identyfikatorem odnoszącym się do pewnej wartości, której nie można zmieniać w trakcie działania skryptu (stąd nazwa stała).

W nazwach stałych wielkość liter jest rozróżniana, a więc stała o nazwie PI nie jest tym samym, co stała o nazwie pi. Warto jednak pamiętać, że w języku PHP panuje powszechnie przyjęta konwencja, zgodnie z którą nazwy stałych zapisuje się samymi wielkimi literami. Ułatwia to ich dostrzeżenie w kodzie i odróżnianie od innych konstrukcji.

Poza tym zasady tworzenia nazw stałych są takie same, jak ogólne zasady tworzenia identyfikatorów w PHP, które obowiązują też zmienne w PHP.

Krótko mówiąc, prawidłowa nazwa stałej w PHP zaczyna się od znaku podkreślenia lub litery, po których może występować dowolna liczba kolejnych znaków podkreślenia i liter. Jeśli chcesz trzymać się przyjętych konwencji (a warto), to w nazwach stałych używaj samych wielkich liter.

Jak definiować stałe w PHP

Najprostszym sposobem na zdefiniowanie stałej w PHP jest użycie słowa kluczowego PHP const, np.:


const PI = 3.14;

Z jego użyciem wiążą się jednak pewne ograniczenia. Wybór metody definiowania wpływa na to, jakie dostępne są typy stałych w PHP. Stała zdefiniowana za pomocą słowa kluczowego PHP const może zawierać tylko wartości skalarne (int, float, bool i string) oraz tablice stałe zawierające same wartości skalarne.

Ponadto słowo kluczowe PHP const może być używane tylko na najwyższym poziomie zakresu dostępności PHP, a więc za jego pomocą nie można definiować stałych w funkcjach, pętlach, czy instrukcjach warunkowych.

Drugim sposobem na zdefiniowanie stałej w PHP jest użycie funkcji define(). Pozwala ona definiować stałe o wartości dowolnego typu. Może nią być nawet tablica albo obiekt.

Jako pierwszy argument należy przekazać nazwę stałej w postaci łańcucha znaków, a w drugim argumencie należy podać wartość, np.:


define("OWADY", [
  "Turkuć podjadek",
  "Złodziejaszek rypidełko",
  "Zyzuś tłuścioch"
]);
echo OWADY[1]; // Wynik: Złodziejaszek rypidełko

Kiedy już utworzymy stałą lub stałe w skrypcie, możemy zechcieć coś z nimi zrobić. Jeśli chcemy tylko wyświetlić wartość stałej, to możemy użyć choćby konstrukcji językowej PHP echo, jak pokazałem w powyższym przykładzie. Ale istnieją też inne sposoby dostępu do wartości stałych. Poznasz je w następnej sekcji.

Jak uzyskać dostęp do wartości stałych w PHP

Jeśli znamy nazwę stałej, to jej wartość uzyskamy bez problemu w dokładnie taki sam sposób, jak uzyskujemy wartości zmiennych, np. przez konstrukcję PHP echo, konstrukcję PHP print, funkcję PHP var_dump() itd.

Jeśli natomiast nazwa stałej jest nieznana, bo na przykład zwraca ją funkcja albo jest przechowywana w zmiennej, to można użyć funkcji constant(). Ponadto funkcja ta umożliwia pracę między innymi ze stałymi klas, np.:


class Test {
  const HEIGHT = 10;
}
$value = "HEIGHT";
echo constant("Test::" . $value);

Ten przykład może ci się wydawać mało niezrozumiały. Wszystko stanie się zupełnie jasne, kiedy poznasz techniki programowania obiektowego w PHP. Na razie wyjaśnię tylko, że w tym przypadku konstrukcja echo wyświetli wartość stałej HEIGHT zdefiniowanej w klasie Test.

Jeśli chcesz uzyskać wykaz wszystkich stałych dostępnych w skrypcie, to możesz użyć funkcji PHP get_defined_constants(). Pamiętaj, że zwraca ona wszystkie dostępne stałe, a więc nie tylko zdefiniowane przez ciebie, ale także standardowo dostępne w PHP, udostępnione przez różne rozszerzenia itd. Może ich być bardzo dużo. Sprawdź u siebie:


print_r(get_defined_constants());

Ponadto istnieje możliwość sprawdzenia, czy istnieje stała o określonej nazwie. Służy do tego funkcja defined(), która przyjmuje nazwę stałej i zwraca prawdę, jeśli stała o takiej nazwie istnieje, lub fałsz w przeciwnym przypadku, np.:


define("STAŁA", "wartość stałej");
echo defined("STAŁA"); // Wynik: 1, czyli prawda

Stałe predefiniowane

Jeśli wywołałeś u siebie funkcję get_defined_constants() i wyświetliłeś jej wynik, to z pewnością już wiesz, że PHP standardowo udostępnia bardzo dużo stałych. Są to tak zwane stałe predefiniowane PHP.

Część z nich należy do rdzenia języka, a więc są dostępne w każdej kompilacji. Na przykład stała PHP_VERSION zawiera numer obecnie używanej wersji PHP, a stała PHP_OS pozwala sprawdzić, dla jakiego systemu została skompilowana używana wersja PHP.

Na stronie Stałe predefiniowane PHP znajdziesz listę wszystkich predefiniowanych stałych należących do rdzenia PHP, a więc dostępnych w każdej kompilacji.

A teraz mam dla Ciebie zaskakującą wiadomość. W języku PHP istnieją też tak zwane stałe magiczne, które tak naprawdę wcale nie są stałymi. Dziwne? W następnej sekcji dowiesz się, o co chodzi.

stałw w php - magik - stałe magiczne php
Stałe magiczne w PHP stanowią dość niezwykłą grupę konstrukcji w tym języku

Stałe magiczne PHP

Oprócz wszystkich wymienionych do tej pory rodzajów stałych, w języku PHP istnieje jeszcze specjalna grupa konstrukcji o nazwie stałe magiczne. Są one o tyle dziwne, że tak naprawdę wcale nie są stałymi, ale używa się ich w podobny sposób, jak stałych.

Na przykład magiczna stała __DIR__ wskazuje katalog, w którym znajduje się plik, a więc jej wartość może się zmieniać w zależności od położenia pliku.

Ponadto w nazwach stałych magicznych wielkość liter nie ma znaczenia, a więc można napisać zarówno __dir__, jak i __DIR__, a efekt w każdym przypadku będzie taki sam.

Poniżej znajduje się lista przedstawiająca wszystkie stałe magiczne PHP. Została ona zaczerpnięta z dokumentacji PHP pod adresem https://www.php.net/manual/en/language.constants.magic.php.

__LINE__
Bieżący numer wiersza w pliku.
__FILE__
Pełna ścieżka do pliku wraz z nazwą pliku.
__DIR__
Ścieżka do katalogu, w którym znajduje się plik.
__FUNCTION__
Nazwa funkcji.
__CLASS__
Nazwa klasy.
__TRAIT__
Nazwa cechy.
__METHOD__
Nazwa metody klasy.
__PROPERTY__
Nazwa własności.
__NAMESPACE__
Nazwa bieżącej przestrzeni nazw.
NazwaKlasy::class
Pełna nazwa klasy.

W ten magiczny sposób dotarliśmy do końca rozdziału o stałych. W kolejnym rozdziale poznasz operatory PHP, bez których trudno sobie wyobrazić jakiekolwiek programowanie. Kilku z nich już używaliśmy wielokrotnie. Teraz dowiesz się o nich trochę więcej i poznasz pozostałe.

Podsumowanie

stałe w php Tygrys podsumowania
  1. Nazwy stałych, w odróżnieniu od nazw zmiennych, nie zaczynają się od znaku dolara.
  2. W nazwach stałych wielkość liter ma znaczenie.
  3. W języku PHP panuje powszechnie przyjęta konwencja zapisu nazw stałych samymi wielkimi literami.
  4. Wartości stałej nie można zmienić ani usunąć w trakcie działania skryptu.
  5. Stałe mają globalny zakres dostępności.
  6. Stałe w PHP można definiować za pomocą słowa kluczowego PHP const i przy użyciu funkcji define().
  7. Dostęp do wartości stałej można uzyskać w taki sam sposób, jak do wartości zmiennej.
  8. Dodatkowo dostęp do wartości stałych można uzyskiwać za pomocą funkcji constant().
  9. Funkcja PHP get_defined_constants() zwraca wszystkie stałe PHP dostępne w skrypcie.
  10. Za pomocą funkcji defined() można sprawdzić, czy istnieje stała o określonej nazwie.
  11. W każdym skrypcie dostępny jest duży zbiór zmiennych predefiniowanych.
  12. W każdym skrypcie dostępny jest zestaw stałych magicznych.


stałe w php Rozmawiający mężczyźni

Pytania

  1. Jakie są zasady nadawania nazw stałym w PHP?
  2. Czym różnią się stałe PHP od zmiennych PHP?
  3. Jaki zakres dostępności mają stałe?
  4. Jak definiuje się stałe w PHP?
  5. Jakie znasz sposoby dostępu do wartości stałych w PHP?
  6. Co robi funkcja get_defined_constants()?
  7. Co robi funkcja defined()?
  8. Czym są stałe predefiniowane PHP?
  9. Czym są stałe magiczne PHP?


Ćwiczące dzieci

Ćwiczenia

  1. Zdefiniuj stałą o dowolnej nazwie i wartości typu łańcuchowego.
  2. Zdefiniuj stałą o dowolnej nazwie i wartości typu zmiennoprzecinkowego.
  3. Zdefiniuj stałą o dowolnej nazwie i tablicy jako wartości.
  4. Za pomocą funkcji defined() sprawdź, czy twoje stałe rzeczywiście istnieją w skrypcie.
  5. Wyświetl numer używanej przez ciebie wersji PHP za pomocą odpowiedniej stałej.
  6. Wyświetl na stronie wartość dowolnej stałej magicznej.
  7. Wyświetl wszystkie stałe dostępne w skrypcie za pomocą funkcji get_defined_constants() i sprawdź, czy wśród nich znajdują się też stałe zdefiniowane przez ciebie.

Podobał Ci się ten artykuł?

Oceń go!

Średnia 5 / 5. Liczba głosów: 2

Jeszcze nikt nie głosował. Wyprzedź innych i zagłosuj.

Skoro spodobał Ci się ten artykuł...

Poleć go znajomym!

Ojej :( Powiedz nam, co powinniśmy poprawić!

Jajko z dzwonkiem
Podoba Ci się ta strona?

Pomóż nam się rozwijać, wykupując płatne konto. Dzięki temu będziemy mogli tworzyć dla Ciebie jeszcze więcej ciekawych treści, a Ty pozbędziesz się reklam.

Dodaj komentarz

jedenaście + 12 =