MySQL Java JavaScript PHP Python HTML-CSS C-sharp

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ă";
?>
← Lecția anterioară Lecția următoare →