Constantes de Clases

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.