V PHP-ju za definiranje konstant znotraj razredov uporabljamo ključno besedo const. Glavna značilnost
konstant je, da se njihova vrednost po definiciji ne more več spremeniti. Za razliko od navadnih lastnosti, konstante
pripadajo razredu samemu in ne posameznemu objektu, zato do njih dostopamo z operaterjem ::.
Morda se sprašuješ: "Kako se lahko izpišeta Fuel ali Electricity, če pa v kodi sploh ni spremenljivk (tistih z znakom $)?" Odgovor se skriva v naravi konstant. Konstante niso spremenljivke, ampak fiksne vrednosti, ki so dobesedno "vpisane" v sam razred.
const in nimajo znaka
za dolar. To PHP-ju pove, da se ta vrednost nikoli ne bo spremenila.:: (npr. Vozilo::KONSTANTA).Za lažjo predstavo si poglej spodnjo tabelo, ki prikazuje, kako se v kodi obnašajo različni tipi podatkov:
| Tip podatka | Sintaksa v razredu | Način dostopa | Primer izpisa |
|---|---|---|---|
| Spremenljivka | public $barva; |
$objekt->barva |
Rdeča (samo ta avto) |
| Konstanta | const NAPETOST = 230; |
Razred::NAPETOST |
230 (za vse objekte) |
| Globalno | define("PI", 3.14); |
PI |
3.14 (povsod v kodi) |
Ko želiš dostopati do konstante znotraj lastne metode v istem razredu, ne uporabiš $this, ampak
ključno besedo self. To je zato, ker $this kaže na objekt, self pa kaže na
razred.
PHP ponuja tudi vgrajene funkcije za ustvarjanje, preverjanje in dinamičen dostop do globalnih konstant:
| Ime funkcije | Opis | Primer |
|---|---|---|
define() |
Ustvari novo globalno konstanto. | define("PI", 3.14); |
defined() |
Preveri, ali konstanta z določenim imenom že obstaja. | if(defined("PI")) { ... } |
constant() |
Vrne vrednost konstante (uporabno, ko je ime konstante v spremenljivki). | echo constant($ime_konstante); |