Variables en PHP 5
Como en todos los lenguajes de programación, PHP 5 permite almacenar datos de distintos tipos en memoria. Estas zonas de memoria se llaman variables. Las variables comienzan por el símbolo de dólar ($) y no necesitan ser declaradas antes de comenzar el programa, como en otros lenguajes.
Tipos de Variables
Existen varios tipos de variables:
• Entero (integer): Almacena números sin decimales. Se puede utilizar la notación decimal (83), octal (0123) o hexadecimal (0x12).
• Coma Flotante (double): Números con decimales.
• Carácter (string): Texto o información numérica escrita entre comillas
dobles ("") o simples ('').
• Bootean: Sólo tiene dos posibles valores: Verdadero o Falso.
• Nulo {NULL): Es un tipo especial que solo contiene un valor: NULL.
• Vectores (array): Colecciones de datos.
• Objetos (object): Conjunto de datos y funciones independientes.
Los 5 primeros tipos son simples y los 2 siguientes (array y object) son compuestos.
Trataremos los tipos compuestos en capítulos sucesivos.
<?php
//Asignación de números enteros, de coma flotante y cadenas de
caracteres
$numero_entero = 12343;
$numero_flotante = 12343.123;
$cadena_caracter = "12 34 3";
//Asignación de los tipos especiales boolean y NULL
$verdadero = TRUE;
$vacio = NULL;
?>
Hay que tener en cuenta que el nombre de las variables no puede empezar
por un número, pero sí puede contenerlos. También pueden empezar
por un guión bajo (__). Puesto que PHP 5 es sensible a las mayúsculas y
minúsculas las variables $numero y $NUMERO serán distintas.
<?php
$4numero = 23; //Esta línea da error
$_numero = 45;
//Las líneas siguientes muestran que PHP 5 es sensible a
mayúsculas
$numero = 23;
$NUMERO = 24;
$Numero = 25;
echo ("numero es: $numero<br>") ;
echo ("NUMERO es: $NUMERO<br>" ) ;
echo ("Numero es: $Numero<br>") ;
?>
Asignación de variables
La asignación es simplemente dar un valor a la variable. Esto se hace poniendo
un símbolo = entre la variable y el dato que queremos asignar.
<?php
$numero_pi = 3.14159 // Aproximadamente
?>
Si se fija en el ejemplo, acabamos de asignar un número de coma flotante
a la variable $numero_pi. En este momento podemos cambiar el valor
de la variable asignando un nuevo valor, que puede ser de un tipo diferente.
<?php
$numerojí = "3.14159"; //El tipo se convierte a cadena de
caracteres
?>
Tipos simples
Los tipos de variables simples (enteros, coma flotante, cadenas de caracteres,
boolean y NULL) deberían ser familiares si conocemos algún lenguaje de programación como C. Puesto que la base de la programación consiste en almacenar datos correctamente, vamos a ver las peculiaridades de los diferentes tipos.
Enteros (integer)
Corresponde a un número entero sin decimales, pudiendo ser negativo o el número cero. Pueden ser almacenados en diferentes formatos correspondiendo con las bases decimal (base 10), octal (base 8) y hexadecimal (base 16). Por defecto se utiliza la numeración decimal. Para utilizar base 8 debe ponerse un 0 delante del número asignado y un Ox si queremos utilizar base 16. Para añadir un número negativo basta con poner el signo menos (-) delante del número.
<?php
$entero_baselO = 1234;
$entero_base8 = 01234;
$entero_basel6 = 0x1234;
$entero_negativo = -1234;
echo ("Decimal: $entero_baselO<br>") ;
echo ("Octal: $entero_base8<br>") ;
echo ("Hexadecimal: $entero_basel6<br>") ;
echo ("Negativo: $entero_negativo<br>") ;
?>
La salida de los números se hace en decimal, aunque la asignación se haya
hecho en hexadecimal o en octal. Esto es así porque PHP trabaja internamente
en binario y hace la conversión a decimal de todos los números
enteros y de coma flotante.
Números de coma flotante (double)
Este tipo de dato contiene números enteros con decimales. Se almacenan
de forma diferente a los números enteros, por lo que las sumas de cantidades
de coma flotante con cantidades enteras darán como resultado un
número de coma flotante.
<?php
//Números de coma flotante
$numero__double = 1234.123;
$numero_double2 = 0.1213;
$numero_double3 = -12 3 4.0;
echo ("Salida de la función echo(): $numero_double3<br>") ;
?>
La salida en el navegador sería:
Salida de echo: -1234
Como puede comprobar, parece que el número que se muestra en pantalla
es del tipo entero. Esto es porque la función echo 0 no muestra el formato
del dato. Para que esto ocurra debemos utilizar otro tipo de función.
<?php
$numero_double3 = -1234.0;
echo ("Salida de printft): " ) ;
printf("%f","$numero_double3");
?>
El código anterior muestra ahora una salida por pantalla más coherente:
Salida de printf() es: -1234.000000
Cadena de caracteres (string)
Es un conjunto de caracteres encerrados entre comillas dobles ("") o simpies
(' ')•
<?php
//Definición de variables de tipo string
$cadenal = "Esto es una cadena de caracteres";
$cadena2 = 'Esto es una cadena entre comillas simples';
$cadena3 = "" ; //Cadena con 0 caracteres.
?>
La diferencia entre las comillas simples y las comillas dobles radica en:
• Comillas simples: Permiten imprimir el contenido íntegro de caracteres
que esté entre las dos comillas.
• Comillas dobles: Permiten incluir variables para imprimirlas junto al
texto.
<?php
$dato = "IMPRIMIBLE";
$texto_simple = 'No puede imprimir la variable $dato';
$texto_doble = "Imprime la variable dato como $dato";
echo ("$texto_simple<br>");
echo ("$texto_doble");
?>
Existen algunos caracteres especiales que no pueden ser añadidos a una
variable de tipo string, a menos que avisemos antes a PHP para que tenga
cuidado a la hora de manejar el dato. Este aviso se conoce como "secuencia
de escape" y no es más que la inclusión delante del carácter especial de
un símbolo \. Así, si quiere insertar unas comillas dobles entre un texto,
tendrá que escribir \" para que no se produzca un error.
<?php
//Secuencias de escape
$cadenal = 'Aquí se pueden añadir comillas "dobles"<br>';
$cadena2 = "Aquí se pueden añadir comillas 'simples'<br>" ;
$cadena3 = "Esta cadena da errores por las comillas
"dobles"<br>";
$cadena4 = "Esta cadena no da errores por las comillas
\"dobles\"<br>" ;
echo $cadenal;
echo $cadena2;
echo $cadena3;
echo $cadena4;
?>
El resultado muestra la impresión de las cadenas, excepto la cadena3 que
da un error por no incluir la secuencia de escape para las comillas.
Tabla 2.1. Secuencias de escape comunes.
Secuencia Valor %
\$ Signo de dólar $
\" Comillas dobles
V Comillas simples
\\ Barra invertida
Secuencia Valor
\n Nueva línea
\r Retorno de carro
\t Tabulador
Boolean
Una variable de tipo boolean sólo puede contener dos valores: Verdadero
o Falso. Se suelen utilizar para comprobar si se cumple una condición en
el programa.
<?php
$variable_booleana = TRUE;
if ($variable_booleana) {
echo ("El resultado es VERDADERO");
}
?>
Aunque todavía no hemos visto las estructuras de control, podemos advertir
que la salida del programa anterior da como resultado la impresión
en pantalla del texto que contiene la función echo () . Además de las variables
boolean, podemos tomar otros tipos de datos como Verdaderos o
Falsos para hacer nuestras comprobaciones.
• Los números enteros o decimales, positivos o negativos son todos Verdaderos.
El 0 se considera Falso. En cualquier caso se recomienda no utilizar
variables de coma flotante para comprobar si son Verdaderos o Falsos.
• Las cadenas de caracteres son Verdaderas, excepto cuando no contienen
ningún dato o contienen únicamente el carácter "0".
• Las variables del tipo NULL son siempre Falsas.
NULL
Es un tipo especial de datos que sólo contiene el valor NULL. Aunque se
suele utilizar por norma en mayúscula, PHP 5 lo acepta escrito de diversas
formas: NULL, nuil, NuLl.
<?php
$variable_nula = NuLl;
if ($variable_nula) {
echo ("La comprobación es VERDADERA");
}
else {
echo ("La comprobación es FALSA");
}
?>
Variables de variables
Las variables son, en definitiva, nombres descriptivos que asocian un espacio
en memoria del servidor con una palabra entendible por nosotros.
En ese espacio de memoria podemos almacenar diferentes tipos de datos.
Podemos definir una variable de la siguiente forma:
<?php
$variablel = "hola";
?> '
En este momento tenemos un espacio de memoria llamado $ v a r i a b l e l ,
donde se aloja el dato "hola". ¿Qué pasa si queremos tratar la palabra "hola"
como una variable?. Podemos hacerlo añadiendo un signo de $ delante de
$ v a r i a b l e l , por lo que se reservará otro espacio en memoria para alojar
el nuevo contenido esta vez con el nombre $hola:
<?php
$variablel = "hola";
$$variablel = "mundo";
//Las dos líneas siguientes producen la misma salida
echo ("$variablel $$variablel<br>") ;
echo ("$variablel $hola<br>");
?>
La salida por pantalla nos da el siguiente resultado:
hola mundo
hola mundo
Constantes
Las constantes son tipos de datos que no varían en el desarrollo de un
programa. En la vida real existen muchos tipos de constantes, el número
pi, la temperatura de congelación del agua, el nombre de la Empresa, etcétera.
Para crear una constante tiene que usar la función define () de la
siguiente forma:
<?php
define("EMPRESA","Zend.S.A.");
define("Autor","Luis Miguel Cabezas Granado");
?>
Para mostrar el valor de las constantes únicamente hay que invocar su
nombre, esta vez sin utilizar el símbolo de $.
<?php
//Definimos primero la constante
define ("COLOR_ROJO"," #FF0000");
//Y ahora escribimos en pantalla su resultado
echo COLOR_ROJO;
//Hay que destacar que el signo de $ no hace falta ponerlo
//Existe otra función que nos permite averiguar el valor de la
constante
echo constant (" C0L0R_R0JO") ;
?>
defined()
Puede utilizar def ined () para averiguar si una constante ya se ha creado.
<?php
define("Editorial","Anaya");
if (defined("Editorial") ) {
echo "La Editorial es: ".Editorial;
}
?>
Constantes predefinidas
PHP 5 define varias constantes cada vez que se ejecuta un script y que son
accesibles por nosotros.
Tabla 2.2. Algunas constantes definidas por PHP 5.
Nombre Descripción
PHP_VERSION Versión del parse de PHP que estamos utilizando.
PHP_OS Sistema operativo del servidor de PHP.
PEAR_EXTENSION_DIR Ruta donde está instalada la extensión PEAR.
PHP_LIBDIR Ruta donde están almacenadas las librerías de
PHP 5.
Finalmente tenemos 5 constantes mágicas, tal y como las definen en el sitio
Web www.php.net, que cambian de valor dependiendo del lugar donde
se usen. Por ejemplo, el valor de la constante LINE depende de la
línea donde la estemos usando en nuestro programa.
Tabla 2.3. Constantes mágicas.
Nombre Descripción
LINE Indica el número de línea desde la que imprimimos el
valor.
FILE Ruta completa al fichero.
FUNCTION Nombre de la función que la contiene.
CLASS Nombre de la clase.
_METHOD_ Nombre del método.
Advertencia:
Hay que tener cuidado con el nombre de las constantes mágicas.
Los símbolos que hay a la izquierda y ala derecha del nombre son
dos guiones bajos seguidos (_).
<?php
echo LINE .",- VERSIÓN de PHP 5:".PHP_VERSION;
echo "<br>";
echo LINE .".- SISTEMA Operativo Servidor: ".PHP_OS;
echo "<br>";
echo LINE .".- Ruta de las extensiones: ".PHP_EXTENSION_DIR;
echo "<br>";
echo LINE .".- API de Servidor: ".PHPJ3API
?>
Funciones relacionadas con variables
PHP 5 brinda al programador una serie de funciones para el manejo de
variables.
isset()
Con esta función podemos averiguar si una función existe dentro de nuestro
programa.
Si existe devuelve true y si no existe false.
<?php
$DNI = "8868543-Z";
if (isset($DNI)) {
echo ("La variable DNI existe!!!");
}
?>
unset()
Libera la memoria ocupada por una variable, destruyendo su nombre y
su contenido. Después de usar unset (), la variable destruida aparecerá
como/a/se al utilizar la función i s s e t () .
<?php
$Nombre = "María Fernanda";
if (isset($Nombre)) {
echo ("El nombre existe!!!");
}
//Podemos comprobar qué pasa si liberamos la variable $Nombre
unset($Nombre)¡
if (isset($Nombre)) {
echo ("El nombre existe!!!");
}
else {
echo ("El nombre ya no existe!!!");
}
?>
El resultado es el siguiente:
El nombre e x i s t e ! !!
El nombre ya no e x i s t e ! !!
gettype()
Con esta función podemos averiguar el tipo de dato almacenado en la
variable. Nos puede devolver uno de los siguientes valores:
• integer
• double
• string
• array
• object
• class
• unknown type
<?php
$correo = "luis@nccextremadura.org";
echo "la variable correo es del tipo: ";
echo gettype($correo);
?>
settype()
Convierte el tipo de la variable al especificado en la función. El tipo debe
especificarse eligiendo uno de los siguientes: array, double, integer, object o
string. Si la función no es capaz de convertir el tipo de la variable devuelve
el valor false.
<?php
$correo = "luis@nccextremadura.org";
if (settype($correo,"integer")) {
echo ("Variable correo convertida a Entero<br>");
}
else {
echo ("Imposible convertir al tipo Entero<br>") ;
}
echo ("Valor actual de correo es $correo");
?>
Al tratar de convertir un tipo string (una cadena de caracteres) a un entero,
PHP 5 comprueba si existe algún número. Si no existe cambia el valor
a O y la función s e t t y p e () la evalúa como correcta.
empty()
Comprueba si una variable está vacía, no existe, o su valor es 0.
<?php
$correo = "luis@nccextremadura.org";
if (empty($nombre)) {
echo ("La variable nombre no existe");
}
$numero_entero = O ;
if (empty($numero_entero)) {
echo ("La variable numero_entero no existe o tiene el valor
O") ;
}
?>
isjntegerf), is_double(), is_string()
Estas funciones devuelven true si la variable pasada coincide con el tipo
que indica la función.
Si la variable $numero_entero se evalúa con la función i s _ i n t e g e r ( ),
devolverá true.
<?php
$numero_entero = 0;
if (is_integer()($numero_entero)) {
echo ("numero_entero es del tipo integer");
}
?>
intval(), doublevalQ, strval()
Convierte el valor de una variable al tipo indicado en la función. Esta función
no permite la conversión a tipos object o array.
<?php
//Conversión de un tipo string a un integer
$cadena = "232";
echo "El tipo de la variable cadena es
".gettype($cadena)."<br>";
$numero = intval($cadena) ;
echo ("el numero es $numero");
?> |