Constantes de clases en PHP

Las constantes de clases funcionan de la misma forma que las constantes normales de PHP, pero difieren en la forma de acceder a ellas

Contenido modificable

Si ves errores o quieres modificar/añadir contenidos, puedes crear un pull request. Gracias

Las constantes de clases permiten definir un valor en una clase y mantenerlo invariable durante la ejecución del script. Es como las constantes de PHP pero dentro de una clase.

Se diferencian de las variables en que no utilizan un símbolo de dólar $ al declararlas o emplearlas, y su valor ha de ser siempre una expresión constante (no una variable, propiedad o callback).

Las interfaces y clases abstractas también pueden tener constantes.

class ClaseA {
    const EJEMPLO = 'valor invariable';
    function mostrarConstante(){
        echo self::EJEMPLO . "<br>";
    }
}
// 4 formas de acceder a la constante EJEMPLO:
// FORMA 1:
echo ClaseA::EJEMPLO . "<br>"; // Devuelve: valor invariable
// FORMA 2:
$clase = "ClaseA";
echo $clase::EJEMPLO . "<br>";// Devuelve: valor invariable
// FORMA 3:
$clase = new ClaseA;
$clase->mostrarConstante();// Devuelve: valor invariable
// FORMA 4:
$clase = new ClaseA;
echo $clase::EJEMPLO;// Devuelve: valor invariable

También es posible utilizar la sintaxis Heredoc y Nowdoc para definir constantes de clases:

class Perro {
    const LADRIDO = <<<"HEY"
GUAU!
HEY;
}
class Gato {
    const MAULLIDO = <<<'HEY'
MIAU!
HEY;
}
echo Perro::LADRIDO . "<br>"; // Devuelve: GUAU!
echo Gato::MAULLIDO; // Devuelve: MIAU!