Konstanter

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Konstanter

Innehållsförteckning

Syntax
Fördefinierade konstanter
Magiska konstanter

En konstant är en identifierare (namn) för ett enkelt värde. Som namnet antyder, kan detta värde inte ändras under skriptets utförande (utom för magiska konstanter, som egentligen inte är konstanter). Konstanter är skiftlägeskänsliga. Enligt konvention är konstantidentifierare alltid skrivna med versaler.

Notera:

Före PHP 8.0.0 kunde konstanter som definieras med funktionen define() vara skiftlägesokänsliga.

Namnet på en konstant följer samma regler som vilken etikett som helst i PHP. Ett giltigt konstantnamn börjar med en bokstav eller ett understreck, följt av valfritt antal bokstäver, siffror eller understreck. Som ett reguljärt uttryck skulle det uttryckas så här: ^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$

Det är möjligt att definiera konstanter med reserverade eller till och med ogiltiga namn, vars värde endast kan hämtas med funktionen constant(). Detta rekommenderas dock inte.

Tips Se även Användarnamnsguiden.

Exempel #1 Giltiga och ogiltiga konstantnamn

<?php

// Giltiga konstantnamn define("FOO", "något"); define("FOO2", "något annat"); define("FOO_BAR", "något mer");

// Ogiltiga konstantnamn define("2FOO", "något");

// Detta är giltigt, men bör undvikas: // PHP kan en dag tillhandahålla en magisk konstant // som kommer att bryta ditt skript define("__FOO__", "något");

?>

Notera: För våra ändamål här är en bokstav a-z, A-Z och ASCII-tecken från 128 till 255 (0x80-0xff).

Liksom superglobaler är en konstants omfattning global. Konstanter kan nås från var som helst i ett skript oberoende av omfattning. För mer information om omfattning, läs manualavsnittet om variabelomfattning.

Notera: Från och med PHP 7.1.0 kan klasskonstanter deklarera en synlighet som skyddad eller privat, vilket gör dem endast tillgängliga i den hierarkiska omfattningen av klassen där den är definierad.