Taller de PHP: Variables y Constantes

phpEn la clase anterior vimos un ejemplo muy chiquito explicando más o menos qué era una variable, hoy avanzaremos un poco más en detalle, veremos:

  • Reconocimiento de Variables
  • Tipos de Variables
  • ¿Qué son las constantes y en qué se diferencian?

Reconociendo variables

Como expliqué en la clase anterior las variables anteponen el símbolo $, es decir $variable, $queEsEsto, $no_se, son tres variables que se le pone el nombre que uno quiere.

Qué contenido pueden tener mis variables

A una variable se le puede asignar cualquier tipo de información: una cadena de texto (string), números enteros (integer), un arreglo (array), true, false, null, etc;
Así mismo, a una variable que antes era un string se le puede cambiar el tipo de información sin ningún problema.

<?
$miVariable = “hola, esta es una cadena de texto”;
$miVariable = 30;
$miVariable = array( ‘hola’, ‘este’, ‘es’, ‘un’, ‘array’ );
$miVariable = true;
?>

Si escribimos todo eso en nuestro código php, el valor final que va a tener la variable $miVariable va a ser true, todo el resto de la información asignada se pierde.

Tipo de variables

Existen dos tipos de variables en php, locales y globales, locales son aquellas que se ejecutan en un único ámbito, es decir si yo defino una variable $local y a continuación uso una función que adentro contiene una variable llamada $local, van a ser consideradas como dos variables diferentes y no va a pasar lo que pasa en el ejemplo anterior que la información asignada prioritariamente a la variable $local se pierde.

Para crear una variable global que sí puede ser accedida desde todos los ámbitos de nuestro script se debe aclarar, caso contrario es local.

<?
global $miGlobal = “esta es una variable global”;
?>

¿Qué son las constantes y en qué se diferencian con las variables?

Como bien lo dice el nombre, una constante es como una variable pero una vez definida esta no puede cambiar su contenido en todo el script.

Para crear una constante debemos definirla de la siguiente manera:

<?
define(’HOLA’, ‘Hola Mundo’);
?>

De esa forma hemos definido la constante HOLA (por convención se utilizan nombres en mayúscula para las constantes aunque no es obligatorio). Las constantes son más livianas que las variables en el uso de memoria del servidor y no pueden ser reescritas, es decir, si en nuestro script tenemos lo siguiente:

<?
define(’HOLA’, ‘Hola mundo’);
define(’HOLA’, ‘Chau mundo’);
?>

Nuestro script de php va a interpretar la constante HOLA con la primer información definida en ella, es decir Hola mundo y en el reporte de errores del servidor va a agregar el error de que se intento definir nuevamente la constante HOLA.

Otra ventaja que tienen las constantes es que son GLOBALES, es decir se pueden acceder desde cualquier ámbito, dentro de una función, una clase, etc.

Por último, para usar una constante la usamos directamente por el nombre que definimos en el primer término, volviendo al ejemplo de Hola mundo de nuestra primer clase, usando la constante sería de la siguiente forma:

<? define('HOLA', 'Hola mundo'); ?>
<html>

<head>
<title><? echo HOLA; ?></title>
</head>
<body>
<h1>incluir código PHP en html</h1>
<p><? echo HOLA; ?></p>
</body>
</html>

y en el navegador se verá así:

Hola Mundo