Es posible definir valores constantes en función de cada clase manteniéndola invariable. Las constantes se diferencian de las variables comunes en que no utilizan el símbolo $ al declararlas o emplearlas.
El valor debe ser una expresión constante, no (por ejemplo) una variable, una propiedad, un resultado de una operación matemática, o una llamada a una función.
También es posible que las interfaces tengan constantes. Consulte los ejemplos de la documentación de interfaces.
A partir de PHP 5.3.0, es posible hacer referencia a una clase utilizando una variable. El valor de la variable no puede ser una palabra reservada (p.ej., self, parent y static).
Ejemplo #1 Definición y uso de una constante
<?php
class MiClase
{
const CONSTANTE = 'valor constante';
function mostrarConstante() {
echo self::CONSTANTE . "\n";
}
}
echo MiClase::CONSTANTE . "\n";
$nombreclase = "MiClase";
echo $nombreclase::CONSTANTE . "\n"; // A partir de PHP 5.3.0
$clase = new MiClase();
$clase->mostrarConstante();
echo $clase::CONSTANTE."\n"; // A partir de PHP 5.3.0
?>
Ejemplo #2 Ejemplo de datos estáticos
<?php
class foo {
// A partir de PHP 5.3.0
const BAR = <<<'EOT'
bar
EOT;
}
?>
A diferencia de heredocs, se puede utilizar nowdocs en cualquier contexto de datos estáticos.
Nota:
El soporte para nowdoc fue agregado en PHP 5.3.0.