Constante în PHP
O constantă păstrează o valoare la fel ca o variabilă, cu o diferență esențială: după ce o definești, nu o mai poți nici modifica, nici anula.
PHP îți oferă două moduri de a crea una: funcția define() și cuvântul cheie const.
Numele respectă o regulă simplă: încep cu o literă sau cu un underscore și nu au semnul $ folosit de variabile.
Funcția define() în PHP
define() își creează constanta în timpul execuției.
Constanta ajunge întotdeauna în domeniul global, chiar și atunci când define() este apelată într-un bloc condițional (if/else, bucle, funcții). Constantele de clasă nu pot fi însă create cu această funcție.
Primește doi parametri:
- CONSTANT_NAME - cum se numește constanta (sensibil la majuscule și minuscule)
- value - ce păstrează constanta
Crearea unei constante cu define()
Aici define() creează o constantă numită „GREETING”, iar echo o afișează. Observă lipsa semnului $:
Ieșire: script PHP
<?php
define("GREETING", "Bine ați venit la PromptCookbook!");
echo GREETING;
?>
Constantă în interiorul unei funcții
Constanta este creată în interiorul lui myTest(), dar codul din afara funcției o poate afișa în continuare:
Ieșire: script PHP
<?php
function myTest() {
define("GREETING", "Bine ați venit la PromptCookbook!");
}
myTest();
echo GREETING;
?>
Sintaxa define()
Aceasta este forma generală a unui apel define():
<?php
define(CONSTANT_NAME, value);
?>
Cuvântul cheie const în PHP
Cu const, constanta este creată în schimb în timpul compilării.
Din acest motiv trebuie să stea în domeniul de la nivelul superior. Nu poți folosi const astfel în interiorul funcțiilor, buclelor, instrucțiunilor if/else sau blocurilor try/catch.
Spre deosebire de define(), funcționează și pentru constante de clasă.
Și aici, numele sunt sensibile la majuscule și minuscule.
Crearea unei constante cu const
Aceeași constantă „GREETING”, creată de data aceasta cu const:
Ieșire: script PHP
<?php
const GREETING = "Bine ați venit la PromptCookbook!";
echo GREETING;
?>
Sintaxa const
Aceasta este forma generală a unei declarații const:
<?php
const CONSTANT_NAME = value;
?>
Constante de tip tablou în PHP
O constantă nu trebuie să păstreze neapărat o singură valoare. Atât define(), cât și const acceptă și tablouri.
Crearea constantelor de tip tablou
Fiecare metodă creează câte o constantă de tip tablou, iar elementele se citesc după index, ca în orice tablou:
Ieșire: script PHP
<?php
// Folosind define()
define("CARS", array("Volvo", "BMW", "Toyota"));
echo CARS[0];
// Folosind const
const ANIMALS = array("Cat", "Dog", "Horse");
echo ANIMALS[1];
?>