Una constante en PHP es un nombre o un identificador para un valor simple. Un valor constante no puede cambiar durante la ejecución del script PHP.

De forma predeterminada, una constante PHP distingue entre mayúsculas y minúsculas.

Por convención, los identificadores de constantes siempre están en mayúsculas.

Un nombre constante comienza con una letra o un guión bajo, seguido de cualquier número de letras, números o caracteres de subrayado.

No hay necesidad de escribir un signo de dólar ($) antes de una constante, sin embargo, uno tiene que usar un signo de dólar antes de una variable.

Ejemplos de nombres de constantes válidos e inválidos en PHP
Estos son algunos ejemplos de nombres de constantes válidos e inválidos en PHP:

// Valid constant names
define("ONE", "first thing");
define("TWO2", "second thing");
define("THREE_3", "third thing");
define("THREE", "third value");

// Invalid constant names
define("2TWO", "second thing");

Diferencia entre constantes y variables en PHP

Las constantes no se pueden definir por simple asignación; solo se pueden definir mediante la función define().

Las constantes se pueden definir y acceder a ellas desde cualquier lugar sin tener en cuenta las reglas de ámbito de las variables.

Una vez que se han establecido las constantes, no se pueden redefinir o indefinir.

Definición de una constante con nombre

La función define() en la biblioteca PHP se utiliza para definir una constante con nombre en tiempo de ejecución.

define(string $const_name, mixed $value, bool $case = false): bool


Parámetros:

  • const_name − El nombre de la constante.
  • value: el valor de la constante. Puede ser un valor escalar (int, float, string, bool o null) o también se aceptan valores de matriz.
  • case – Si se establece en true, la constante se definirá sin distinción entre mayúsculas y minúsculas. El comportamiento predeterminado distingue entre mayúsculas y minúsculas, es decir, CONSTANT y Constant representan valores diferentes.

La función define() devuelve «verdadero» en caso de éxito y «falso» en caso de error.

Ejemplo 1


El siguiente ejemplo muestra cómo funciona la función define():

<?php
define("CONSTANT", "Hello world.");

echo CONSTANT;
// echo Constant;
?>

La primera instrucción echo genera el valor de CONSTANT. Obtendrá el siguiente resultado:

Hello world.

Pero, cuando descomenta la segunda instrucción echo, mostrará el siguiente error:

Fatal error: Uncaught Error: Undefined constant "Constant" in hello.php: on line 5


Si estableces el parámetro case en False, PHP no diferencia las constantes mayúsculas y minúsculas.

Ejemplo 2


También puede utilizar una matriz como valor de una constante. Echa un vistazo al siguiente ejemplo:


Producirá el siguiente resultado:

array(3) {
[0]=>
string(3) "PHP"
[1]=>
string(4) "Java"
[2]=>
string(6) "Python"
}

Uso de la función constant()

La instrucción echo genera el valor de la constante definida. También puede utilizar la función constant(). Devuelve el valor de la constante indicada por name.

constant(string $name): mixed

La función constant() es útil si necesita recuperar el valor de una constante, pero no conoce su nombre. Es decir, se almacena en una variable o es devuelto por una función.

<?php
define("MINSIZE", 50);

echo MINSIZE;
echo PHP_EOL;
echo constant("MINSIZE"); // same thing as the previous line
?>

Producirá el siguiente resultado:

50
50


Uso de la función defined()


La biblioteca PHP proporciona una función defined() que comprueba si existe una constante con nombre dada. Echa un vistazo al siguiente ejemplo:

<?php
define('MAX', 100);

if (defined('MAX')) {
echo MAX;
}
?>


Producirá el siguiente resultado:

100


PHP también tiene una función llamada «get_defined_constants()» que devuelve una matriz asociativa de todas las constantes definidas y sus valores.