Syntax
Syntax
Constanten kunnen worden gedefinieerd met behulp van het `const`-sleutelwoord,
of door gebruik te maken van de `define`-functie.
Terwijl `const` het mogelijk maakt om een constante te definiëren voor een willekeurige expressie, heeft het `define`-sleutelwoord
beperkingen zoals uiteengezet in de volgende paragraaf.
Zodra een constante is gedefinieerd, kan deze nooit meer
worden gewijzigd of ongedefinieerd.
const``define``define``const
Bij het gebruik van het `const`-sleutelwoord
worden alleen scalare (boolean, integer,
en float) expressies en constante strings die alleen scalare expressies bevatten geaccepteerd.
Het is mogelijk om constanten te definiëren als een array,
maar dit moet worden vermeden, omdat het onverwachte resultaten kan veroorzaken.
const``bool``int``float``string``array``resource
De waarde van een constante wordt eenvoudig toegankelijk door de naam ervan op te geven.
In tegenstelling tot variabelen, wordt een constante niet
voorafgegaan door een dollar teken ($).
Het is ook mogelijk om de `get_defined_constants`-functie te gebruiken om
de waarde van een constante te lezen als de naam van de constante dynamisch wordt verkregen.
Gebruik `get_defined_constants` om een lijst te krijgen van
alle gedefinieerde constanten.
not$``constant``get_defined_constants
Opmerking: > Constanten en (globale) variabelen bevinden zich in een andere namespace. Dit houdt in dat bijvoorbeeld
trueen over het algemeen verschillend zijn.$TRUE
Als een ongedefinieerde constante wordt gebruikt, wordt er een `Error` gegooid.
Voor PHP 8.0.0 werden ongedefinieerde constanten geïnterpreteerd als een blote
string, d.w.z. (CONSTANT vs "CONSTANT").
Deze fallback is deprecated sinds PHP 7.2.0, en er wordt een fout van niveau
`E_WARNING` uitgegeven wanneer dit gebeurt.
Voor PHP 7.2.0 werd er in plaats daarvan een fout van niveau
`E_NOTICE` uitgegeven.
Zie ook de handleiding over waarom
`E_NOTICE` verkeerd is (tenzij `E_NOTICE` een constante is).
Dit geldt niet voor `bar`,
wat altijd een `Error` zal genereren als het ongedefinieerd is.
Error``string``E_WARNINGE_NOTICE$foo[bar]bar(fully) qualified constantsError
Opmerking: > Om te controleren of een constante is ingesteld, gebruik de
defined-functie.defined
Dit zijn de verschillen tussen constanten en variabelen:
- Constanten hebben geen dollar teken ($) voor zich;
- Constanten kunnen overal worden gedefinieerd en benaderd zonder rekening te houden met variabele scoping regels;
- Constanten kunnen niet opnieuw worden gedefinieerd of ongedefinieerd worden zodra ze zijn ingesteld; en
- Constanten kunnen alleen evalueren naar scalare waarden of arrays.
Voorbeeld: Definiëren van Constanten
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // Emits an Error: Undefined constant "Constant"
// Prior to PHP 8.0.0, outputs "Constant" and issues a warning.
?>
Voorbeeld: Definiëren van Constanten met behulp van het const-sleutelwoord
<?php
// Eenvoudige scalare waarde
const CONSTANT = 'Hello World';
echo CONSTANT;
// Scalare expressie
const ANOTHER_CONST = CONSTANT.'; Goodbye World';
echo ANOTHER_CONST;
const ANIMALS = array('dog', 'cat', 'bird');
echo ANIMALS[1]; // outputs "cat"
// Constante arrays
define('ANIMALS', array(
'dog',
'cat',
'bird'
));
echo ANIMALS[1]; // outputs "cat"
?>
Opmerking: > In tegenstelling tot het definiëren van constanten met
define, moeten constanten die zijn gedefinieerd met hetconst-sleutelwoord worden gedeclareerd op het hoogste niveau omdat ze op compile-tijd worden gedefinieerd. Dit betekent dat ze niet kunnen worden gedeclareerd binnen functies, lussen, statements oftry/catch-blokken.define``const``if``try``catch
Class Constanten