Syntax
Syntax
Konstanter kan definieras med nyckelordet const eller genom att använda funktionen define(). Medan define() tillåter att en konstant definieras till ett godtyckligt uttryck, har nyckelordet const begränsningar som beskrivs i nästa stycke. När en konstant är definierad kan den aldrig ändras eller tas bort.
När du använder nyckelordet const, accepteras endast skalära (bool, int, float och string) uttryck och konstanta arrayer som innehåller enbart skalära uttryck. Det är möjligt att definiera konstanter som en resurs, men det bör undvikas, eftersom det kan leda till oväntade resultat.
Värdet på en konstant nås enkelt genom att ange dess namn. Till skillnad från variabler föregås inte en konstant av ett $. Det är också möjligt att använda funktionen constant() för att läsa en konstants värde om konstantens namn erhålls dynamiskt. Använd get_defined_constants() för att få en lista över alla definierade konstanter.
Notera: Konstanter och (globala) variabler finns i olika namnrymder. Detta innebär att till exempel true och $TRUE generellt är olika.
Om en odefinierad konstant används kastas ett fel. Före PHP 8.0.0 skulle odefinierade konstanter tolkas som en enkel ordsträng, d.v.s. (CONSTANT vs "CONSTANT"). Denna återfall är föråldrad från och med PHP 7.2.0, och ett fel av nivån E_WARNING utfärdas när det händer. Före PHP 7.2.0 utfärdades ett fel av nivån E_NOTICE istället. Se även manualposten om varför $foo[bar] är felaktigt (om inte bar är en konstant). Detta gäller inte för (fullständigt) kvalificerade konstanter, vilka alltid kommer att resultera i ett fel om de är odefinierade.
Notera: För att kontrollera om en konstant är inställd, använd funktionen defined().
Här är skillnaderna mellan konstanter och variabler:
- Konstanter har inte ett dollartecken ($) framför dem;
- Konstanter kan definieras och nås var som helst oberoende av variabelns omfångsregler;
- Konstanter får inte omdefinieras eller tas bort när de har ställts in; och
- Konstanter får endast utvärderas till skalära värden eller arrayer.
Exempel #1 Definiera konstanter