
Tabla de contenidos
Una constante es el identificador (nombre) de un valor simple y, como su nombre lo indica, este valor no es intercambiable durante la ejecución del código (a excepción de las constantes mágicas, que en realidad no son constantes). La constante distingue entre mayúsculas y minúsculas y es común usar letras mayúsculas al nombrar constantes.
Las constantes siguen las mismas reglas para nombrar que en PHP, un nombre de constante válido comienza con una letra o un guión bajo, seguido de un número ilimitado de letras, números y guiones bajos. Y si quisiéramos utilizar expresiones regulares para expresar el nombre de la variable, sería el siguiente:
[ a - zA - Z_ \ x7f - \ xff ] [ a - zA - Z0 - 9 _ \ x7f - \ xff ] *
Ejemplo 1: los nombres de constantes válidas y no válidas
<? php // Nombres de constantes enteros define( "Text" , "something" ); define( "Text1" , "something else" ); define( "Text_BAR", "something more" ); // Nombres de constantes define( "2Text" , "more" ); // Este método es correcto pero evite usarlo // El lenguaje puede que algún día presente una constante mágica // Puede romper su código. define( "__Text__" , "something" ); ?>
Nota: En este directorio, la letra es todo lo que está en el rango az y AZ y los bytes 127 a 255 (0x7f-0xff).
Al igual que con las variables globales, las constantes están dentro del alcance global y se puede acceder a ellas desde cualquier lugar del código sin tener que considerar el alcance actual.
Formulaciones php de las constantes
La constante se puede definir usando la función define()
o con la palabra clave const
fuera de las clases desde PHP 5.3.0. Permite define()
asignar constantes a varios tipos de valores y expresiones, mientras que existen algunas restricciones que rigen su uso, las const
cuales mostraremos en el siguiente párrafo. En ningún caso es posible cambiar el valor de la constante o cancelar el valor que se le asigna después de realizar el proceso de atribución.
El uso de const
valores iniciales específicos (valores escalares, es decir, valores lógicos y enteros y números decimales y cadenas de texto ) en versiones anteriores de la versión 5.6 de PHP. En versiones posteriores fue posible definir la constante como una expresión numérica, y también fue posible definir matrices de constantes. Las constantes también se pueden definir como recursos , pero esto no se recomienda y puede causar resultados inesperados.
El valor de una constante se puede obtener por su nombre, a diferencia de las variables, el nombre no necesita ir precedido de un signo $
. La función también se puede utilizar constant()
para leer el valor de la constante si es necesario para obtener el nombre de la constante de forma dinámica. Para obtener una lista de todas las constantes definidas, puede usar el get_defined_constants()
.
Nota: las constantes y variables (globales) están en diferentes espacios de nombres, lo que significa que TRUE
y $TRUE
(por ejemplo) son diferentes entre sí.
Si no se asigna ningún valor a la constante, PHP asumirá que lo que se quiere decir es el nombre de la constante en sí, como si la llamada fuera a una cadena ( CONSTANT
vs "CONSTANT"
). Aparecerá un error de nivel E_NOTICE
cuando esto suceda. Consulte el tipo de datos de matriz de página para averiguar por qué se produce el $foo[bar]
error de (si solo utilizamos define()
para definir una bar
constante). Lo anterior no se aplica a las constantes calificadas (totalmente) donde surgirá un error fatal si no se define este tipo de constante. Si desea saber si la constante está definida o no, puede usar el defined()
.
Aquí están las diferencias entre constantes y variables:
- Las constantes no van precedidas de un signo
$
. - Antes de la versión 5.3, las constantes se podían definir utilizando
define()
solo la función , no mediante una simple asignación. - Las constantes se pueden definir y acceder desde cualquier lugar sin tener en cuenta el alcance actual.
- Las constantes no se pueden redefinir o dejar de definir una vez que se han definido.
- Las constantes solo se pueden usar con valores brutos. En PHP versión 5.6 y posteriores, ahora es posible definir matrices estáticas usando la palabra clave
const
. En PHP versión 7, ahora es posible usar la funcióndefine()
para definir matrices estáticas. Las matrices estáticas se pueden usar en expresiones escalares estáticas (por ejemplo:)const FOO=array(1,2,3)[0];
pero el resultado final debe ser un valor de tipo aceptable en PHP.
Definir constantes
<? php define( "CONSTANT" , "Hola mundo" ); // "Hola Mundo." echo CONSTANT ; echo constant ; // "Constante" // y aparecerá una alerta. ?>
Definición de constantes mediante la palabra clave const
<? php // funciona desde la versión 5.3.0 const CONSTANT = 'Hello World'; echo CONSTANTE; // Funciona desde la versión 5.6.0 del lenguaje const ANOTHER_CONST = CONSTANT.' Adiós mundo '; echo ANOTHER_CONST ; const ANIMALES = array( 'perro', 'gato', 'loro' ); echo ANIMALES [1]; // "gato" // Funciona desde la versión 7 define( 'ANIMALS', array ( 'perro' , 'gato' , 'loro' ))); echo ANIMALES [2]; // "loro" ?>
Debes saber que las constantes definidas mediante la palabra clave const
difieren de las definidas por la función define()
, las cuales en el primer caso deben declararse exclusivamente en el ámbito de nivel superior porque estas constantes se definen en tiempo de compilación, lo que significa que no se pueden declarar funciones internas, bucles, condicionales o dentro de un bloque try / catch.
Nota: Las constantes definidas mediante la palabra clave const
siempre distinguen entre mayúsculas y minúsculas, mientras que las constantes definidas por una función define()
pueden no distinguir entre mayúsculas y minúsculas.
Establecer Constantes de PHP
Establezca la constante, use la función define (), la sintaxis de la función es la siguiente:bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
La función tiene 3 parámetros:
- name: parámetro obligatorio, nombre constante, identificador.
- value: parámetro requerido, valor constante.
- case_insensitive: parámetro opcional, si se establece en true, no distinguirá entre mayúsculas y minúsculas. Pero con valor predeterminado distingue entre mayúsculas y minúsculas.
En el siguiente ejemplo, creamos una constante sensible a mayúsculas y minúsculas , un valor constante de «Bienvenido a bigcode.es»:
<?php //Constante sensible a mayúsculas y minúsculas define("GREETING", "Bienvenido a bigcode.es"); echo GREETING; // Salida Bienvenido a bigcode.es echo '<br>'; echo greeting; //Saliendo "greeting" ?>
En esta otra demostración siguiente creamos una constante que no distingue entre mayúsculas y minúsculas , un valor constante de «Bienvenido a bigcode.es»:
<?php //Constante que no distingue entre mayúsculas y minúsculas define("GREETING", "Bienvenido a bigcode.es", true); echo greeting; //Bienvenido a bigcode.es ?>
Constantes mágicas
PHP proporciona una gran cantidad de constantes predefinidas para el código que ejecuta, pero muchas de estas constantes son creadas por múltiples extensiones y están disponibles cuando estas extensiones son proporcionadas por carga dinámica o porque están compiladas.
Hay nueve constantes mágicas que cambian dependiendo de dónde se utilicen. Por ejemplo, el valor de la constante depende __LINE__
de la línea utilizada en el código. Todas estas constantes mágicas se analizan en tiempo de compilación, a diferencia de las constantes regulares, que se analizan en tiempo de ejecución. Este tipo especial de constante no distingue entre mayúsculas y minúsculas. Aquí hay una lista de estas constantes:
Propiedad | Función |
---|---|
__LINE__ | El número de línea actual en el archivo. |
__FILE__ | Ruta completa y nombre de archivo con análisis de enlaces simbólicos. Si esta constante se usa en un archivo incrustado, el resultado será el nombre del archivo incluido. |
__DIR__ | La carpeta que contiene el archivo. Si se usa en un archivo incrustado, el resultado será el nombre de la carpeta que contiene el archivo incluido. Esta constante es equivalente a usar el dirname(__FILE__) . Esta carpeta no está precedida por una barra a menos que sea el directorio raíz. |
__FUNCTION__ | Nombre de la función. |
__CLASS__ | Nombre del producto. El nombre de la clase también incluye el espacio de nombres en el que se declara la clase (por ejemplo Foo\Bar ). Tenga en cuenta que desde PHP 5.4 también __CLASS__ funcionan en rasgos. Cuando esta constante se usa en métodos de atributos, da el __CLASS__ nombre de la clase en la que se usa el atributo. |
__TRAIT__ | Nombre del Atributo. El nombre del atributo incluye el espacio de nombres en el que se declara el atributo. (Ejemplo: Foo \ Bar). |
__METHOD__ | El nombre de la función de clase. |
__NAMESPACE__ | El nombre de dominio actual. |
ClassName::class | El nombre de la clase completamente calificado. ver también::class |
Registro de cambios
Versión | Función |
---|---|
5.5.0 | Agrega magia con fuerza ::class |
5.4.0 | agregar difícil __TRAIT__ |
5.3.0 | agregar constantes __DIR__ y__NAMESPCE__ |
5.0.0 | agregar difícil __METHOD__ |
5.0.0 | Antes de esta versión, los valores de algunas constantes mágicas se escribían en minúsculas. Ahora todos distinguen entre mayúsculas y minúsculas (contienen los nombres tal como se divulgan). |
4.3.0 | agregar constantes __FUNCTION__ y__CLASS__ |
4.0.2 | La constante __FILE__ siempre contenía una ruta absoluta con análisis de enlaces simbólicos, mientras que en versiones anteriores esta constante contenía enlaces relativos en algunos casos. |
- Múltiples Constantes en TypeScript
- Estructura de Datos las Colas
- Estructura de Datos las Pilas (Stack)
- Widget Drawer en Flutter
- Clase Scaffold en Flutter
- Estructura del lenguaje Python
- Iteradores y generadores en TypeScript
- Símbolo en TypeScript (Symbol)
- Tipos Avanzados en TypeScript
- Tipos de Compatibilidad en TypeScript
- Inferir Tipos en TypeScript
- Tipos Generalizados (Generics) en TypeScript
- Tipos Básicos de Datos en TypeScript
- Interfaces en TypeScript
- Declaración de Variables en TypeScript
- Funciones en TypeScript
- Categorías en TypeScript
- Introducción a TypeScript
- Clase MaterialApp en Flutter
- Clase Container en Flutter
- ¿Qué son los Widgets en Flutter?
- Introducción a la Arquitectura de Aplicaciones con Flutter
- Lista Doblemente Enlazada
- Listas Vinculadas en Estructura de Datos
- Introducción a las Matrices(Arrays)
- Estructuras de Datos en los Algoritmos de Programación
- Expresión const en JavaScript
- Expresión let en JavaScript
- Introducción al Lenguaje de Programación CSS
- Intérprete de Python