PHP kézikönyv
Előző |  | Következő

# 13. Fejezet. Állandók

Az állandó egy skalár érték azonosítója (neve). Mint ahogy az elnevezése is mutatja, a program futása során nem változik/hat meg az értéke. Kivételt képeznek a mágikus konstansok, amelyek tulajdonképpen nem is konstansok. Az állandók alapesetben érzékenyek a kis- és nagybetűs irásmódra. Megállapodás szerint általában csupa nagybetűs neveket használunk az állandók neveiként.

Az állandók neveire a PHP más jelzőivel azonos szabályok vonatkoznak. Egy érvényes állandó-név betűvel vagy aláhúzással kezdődik, amit tetszőleges számú betű, szám vagy aláhúzás követ. Reguláris kifejezéssel kifejezve ez a következőt jelenti: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*

Példa 13-1. Helyes és helytelen konstans nevek
`<?php // Helyes konstans nevek define("IZE", "valami"); define("IZE2", "valami más"); define("IZEÜBIGYO", "valami egészen más"); // Helytelen konstans nevek define("2IZE", "valami"); // Ez helyes, de jobb nem használni, mivel // előfordulhat, hogy egyszer a PHP-nek lesz // ilyen nevű mágikus konstansa, ami // működésképtelenné teszi a szkriptedet define("__IZE__", "valami"); ?>`

> Megjegyzés: Ebben az esetben egy betű lehet az angol abc egy betűje a-z-ig és A-Z-ig, valamint a 127-től 255-ig terjedő (0x7f-0xff) ASCII kódú karakterek.

Hasonlóan a szuperglobális változókhoz, az állandók bárhonnan elérhetőek. Az aktuális hatáskörtől (scope) függetlenül bárhol használhatók. A változók hatásköre című részben tobbet megtudhatsz a hatáskörökről.

# Szintakszis

A define() függvénnyel lehet állandót létrehozni, amelynek definiálása után később nem lehet törölni vagy megváltoztatni az értékét.

Csak skaláris adat (boolean, integer, float vagy string típusú) lehet egy konstans tartalma.

A konstans értékére a nevének megadásával lehet hivatkozni. A változókkal ellentétben nem szabad $ jelet tenned a konstand neve elé. Egy konstans értékének lekérésére használhatod még a constant() függvényt is, abban az esetben, ha a konstans nevét dinamikusan szeretnéd megkapni. A get_defined_constants() függvénnyel lehet a definiált konstansok listáját megkapni.

> Megjegyzés: A konstansok és a (globális) változók különböző névtérben vannak. Ez azt jelenti, hogy a `TRUE` és a $TRUE két különböző dolgot jelent.

Ha egy definiálatlan konstanst próbálsz meg használni, a PHP a konstans nevét veszi karaktersorozatként értékül (KONSTANS és "KONSTANS"). Ilyen esetekben egy E_NOTICE szintű hiba keletkezik. Lásd még a kézikönyvnek azt a részét, ahol azt tárgyalja, miért nem jó az $ize[bigyo] használata, abban az esetben, ha előtte nem definiáltad a bigyo-t konstansként. Ha szeretnéd megtudni, hogy egy konstans definiálva van, használd a defined() függvényt.

A következők a fontosabb különbségek a változókhoz képest:

- Az állandók nevét nem kell dollár jellel $ kezdeni.

- Az állandók akárhol definiálhatók, és akárhonnan elérhetők, a változók környezeti korlátozásaitól függetlenül.

- Az állandók nem módosíthatóak, és nem törölhetőek, miután egyszer létrehozták azokat.

- Az állandók csak skaláris értékeket tartalmazhatnak.

Példa 13-2. Konstansok definiálása
`<?php define("KONSTANS", "Helló világ!"); echo KONSTANS; // kiírja, hogy "Helló világ!" echo Konstans; // kiírja, hogy "Konstans" és hibát eredményez ?>`

Előző | Tartalom | Következő
Változók a PHP-n kívülről | Fel | Mágikus konstansok