Constante
Constantele, la fel ca variabilele, stochează o anumită valoare, însă spre deosebire de variabile, valoarea constantelor poate fi stabilită o singură dată și nu mai poate fi modificată ulterior.
Constantele sunt de obicei definite pentru a stoca valori care trebuie să rămână neschimbate pe durata execuției unui script.
Operatorul const
Pentru a defini o constantă se folosește operatorul const, iar în denumirea constantei nu se folosește semnul dolar ($), spre deosebire de variabile.
<?php
const PI = 3.14;
echo PI;
?>
De obicei, denumirile constantelor sunt scrise cu litere mari, dar aceasta este doar o convenție.
După definirea constantei, o putem folosi la fel ca o variabilă obișnuită.
PHP permite stabilirea valorilor constantelor pe baza expresiilor calculate:
<?php
const PI = 2.1415 + 1;
echo PI; // 3.1415
?>
Singura excepție este că nu putem schimba valoarea unei constante. De exemplu, expresia PI = 3.1415; care ar trebui să schimbe valoarea constantei, nu va funcționa.
Funcția define
De asemenea, pentru definirea unei constante poate fi folosită funcția define(), care are următoarea formă:
define(string $name, mixed $value)
Parametrul $name transmite denumirea constantei, iar parametrul $value - valoarea ei. Valoarea constantei poate fi de tip int, float, string, bool, null sau array-uri.
De exemplu, să definim o constantă numerică:
<?php
define("NUMBER", 22);
echo NUMBER; // 22
?>
Constante magice
Pe lângă constantele create de programator, PHP include și câteva așa-numite "constante magice", care sunt predefinite în limbaj:
- __FILE__: stochează calea completă și numele fișierului curent
- __LINE__: stochează numărul liniei curente pe care o procesează interpretatorul
- __DIR__: stochează directorul fișierului curent
- __FUNCTION__: denumirea funcției procesate
- __CLASS__: denumirea clasei curente
- __TRAIT__: denumirea trait-ului curent
- __METHOD__: denumirea metodei procesate
- __NAMESPACE__: denumirea spațiului de nume curent
- ::class/span>: denumirea completă a clasei curente
De exemplu, să afișăm linia curentă și numele fișierului:
<?php
echo "Linia " . __LINE__ . " în fișierul " . __FILE__;
?>
Verificarea existenței unei constante
Pentru a verifica dacă o constantă este definită, putem folosi funcția bool defined(string $name). Dacă constanta $name este definită, funcția va returna true:
<?php
const PI = 3.14;
if (!defined("PI"))
define("PI", 3.14);
else
echo "Constanta PI este deja definită";
?>