Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Stałe w języku PHP

czwartek,

Stałe w języku PHP

Niektóre zastosowania stałych są bardzo podobne jak w przypadku zmiennych, jednak istnieje jedna fundamentalna różnica. Nadana im wartość nie może ulec zmianie.

Stałą można zadeklarować za pomocą funkcji define(). Prawidłowa nazwa stałej rozpoczyna się od litery lub podkreślenia, po której następuje dowolna liczba liter, cyfr lub podkreśleń. Zasadę tą można zapisać za pomocą wyrażenia regularnego: ^[a-zA-Z_x80-xff][a-zA-Z0-9_x80-xff]*$. Większość programistów w nazwach stałych stosuje wielkie litery, znacznie zwiększa to czytelność kodu. Dostęp do stałych można uzyskać z dowolnego miejsca w skrypcie, bez względu na zakres. Do stałej można odwołać się za pomocą jej nazwy, jednak nie może ona być ujęta w cudzysłowie lub apostrofach.

define('ROK', 2020);
echo "ROK"; // wyswietli się słowo ROK
echo ROK; // wyswietli się wartość 2020

Stałą można zdefiniować w alternatywny sposób posługując się słowem kluczowym const.

const K = 0.01720209895;
echo K;

Choć to bardzo niezalecane, nazwą stałej może być słowo zastrzeżone. W takim przypadku do stałej nie można odwołać się bezpośrednio, ponieważ zakończy się to błędem powodującym zablokowanie wykonania skryptu.

define('ECHO', 'c');
echo ECHO; // błędne odwołanie do zastrzeżonej nazwy

Do stałych, których nazwa to zastrzeżone słowo, można odwołać się za pomocą funkcji constant().

define('ECHO', 'c');
echo constant('ECHO');

Prawdziwą ciekawostką jest możliwość zdefiniowania stałej, której nazwą jest pusty łańcuch znaków.

define("", '😉');
echo constant("");

Dostępnych jest wiele predefiniowanych stałych, które są tworzone bez ingerencji użytkownika przed wykonaniem skryptu. W przykładzie wyświetlono zapisane w stałej oznaczenie wersji PHP.

echo PHP_VERSION;

W języku PHP dostępne są tzw. magiczne stałe (w rzeczywistości nie są one stałymi). Charakteryzują się one specyficzną nazwą zawierającą na początku i na końcu po dwa podkreślniki. Poniższa instrukcja wyświetli numer wiersza pliku, w którym znajduje się jej wywołanie.

echo __LINE__;

Używanie konwencji nazw przyjętej w przypadku magicznych stałych nie jest wskazane, ponieważ w przyszłości twórcy języka mogą wprowadzić element o dokładnie takiej samej nazwie. W przykładzie zastosowano niezalecaną konwencję.

define('__PHP__', PHP_VERSION . ':' . PHP_OS); // wysoce niezalecana nazwa
echo __PHP__;

Od siódmej wersji PHP w przypadku stałych akceptowane są również wartości tablicowe.

define('UNITS', 
  [
    'cm',
    'px',
    'cal' => 'inch'
]);
print_r(UNITS);
echo UNITS['cal'];
echo UNITS[0];
/*
Array
(
    [0] => cm
    [1] => px
    [cal] => inch
)

inch
cm
*/

Funkcja define() może przyjąć trzeci, opcjonalny argument, który określa, czy stała zostanie zdefiniowana bez uwzględniania wielkości liter. Domyślną i zalecaną wartością tego argumentu (w przypadku jego braku) jest FALSE i branie pod uwagę wielkości liter. W najnowszej wersji języka, PHP8, którą opublikowano kilka dni temu, parametr ten został usunięty.

define('CKZiU', 65, TRUE);

echo CKZiU; // 65
echo Ckziu; // 65
Artykuł: Staże w Hiszpanii

Staże w Hiszpanii

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Artykuł: PiP i podobne technologie

PiP i podobne technologie

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły