dominios y alojamiento web en hostalia

Variables en PHP

01 de enero de 2001
Valoración del artículo:
Tipos de variables, características generales y aspectos específicos de PHP de estos elementos básicos de la programación.
Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.
Las variables son uno de los primeros temas que tenemos que conocer en PHP y en la mayoría de los lenguajes de programación. Así que a continuación vamos a tratar este tema dentro del Manual de PHP, explicando los tipos de variables que podremos encontrar.

Anteriormente en DesarrolloWeb.com, en el manual de páginas dinámicas, ya habíamos introducido el concepto de variable. En el capítulo anterior comentábamos que, para PHP, las variables eran definidas anteponiendo el símbolo dólar ($) al nombre de la variable que estábamos definiendo.

Dependiendo de la información que contenga, una variable puede ser considerada de uno u otro tipo:

Variables numéricas
Almacenan cifras
Enteros $entero=2002; Numeros sin decimales
Real $real=3.14159; Numeros con o sin decimal

Variables alfanuméricas
Almacenan textos compuestos de números y/o cifras
Cadenas Almacenan variables alfanuméricas $cadena="Hola amigo";

Tablas
Almacenan series de informaciones numéricas y/o alfanuméricas
Arrays Son las variables que guardan las tablas $sentido[1]="ver";
$sentido[2]="tocar";
$sentido[3]="oir";
$sentido[4]="gusto";
$sentido[5]="oler";

Objetos
Se trata de conjuntos de variables y funciones asociadas. Presentan una complejidad mayor que las variables vistas hasta ahora pero su utilidad es más que interesante.

A diferencia de otros lenguajes, PHP posee una gran flexibilidad a la hora de operar con variables. En efecto, cuando definimos una variable asignándole un valor, el ordenador le atribuye un tipo. Si por ejemplo definimos una variable entre comillas, la variable será considerada de tipo cadena:

$variable="5"; //esto es una cadena

Sin embargo si pedimos en nuestro script realizar una operación matemática con esta variable, no obtendremos un mensaje de error sino que la variable cadena será asimilada a numérica:

<?
$cadena="5"; //esto es una cadena
$entero=3; //esto es un entero
echo $cadena+$entero
?>

Ejecutar script

Este script dará como resultado "8". La variable cadena ha sido asimilada en entero (aunque su tipo sigue siendo cadena) para poder realizar la operación matemática. Del mismo modo, podemos operar entre variables tipo entero y real. No debemos preocuparnos de nada, PHP se encarga durante la ejecución de interpretar el tipo de variable necesario para el buen funcionamiento del programa.

Sin embargo, en contraste, hay que tener cuidado en no cambiar mayúsculas por minúsculas ya que, en este sentido, PHP es sensible. Conviene por lo tanto trabajar ya sea siempre en mayúsculas o siempre en minúsculas para evitar este tipo de malentendidos a veces muy difíciles de localizar.

Variables asignadas por referencia

En PHP también podemos asignar variables por referencia. En ese caso no se les asigna un valor, sino otra variable, de tal modo que las dos varialbles comparten espacio en memoria para el mismo dato.

La notación para asignar por referencia es colocar un "&" antes del nombre de la variable.

<?php
$foo = 'Bob'; // Asigna el valor 'Bob' a $foo
$bar = &$foo; // Referencia $foo vía $bar.
$bar = "Mi nombre es $bar"; // Modifica $bar...
echo $foo; // $foo también se modifica.
echo $bar;
?>

Esto dará como resultado la visualización dos veces del string "Mi nombre es Bob". Algo como:

Mi nombre es BobMi nombre es Bob

Compartir en redes sociales

Comentarios
Fueron enviados 16 comentarios al artículo
10 comentarios no revisados
6 comentarios revisados:
Por: ZequeZ
15/9/2007
Muy bueno, gracias, era verdad eso que decian que si aprendias por lo menos un lenguaje, loes demas eran mas faciles!!

Yo eprendi un poco de batch, y esto es bastante parecido con el tema de las variables ^^ y sobre todo el echo =P falta que tengamos que poner @echo off al principio xD ^^
Por: Mark
20/9/2007
la verdad muy buen tuto
grax apenas me estoy aprendiendo a
usar el visual, pero me
ha llamado la atencion
este espero aprendenr
Un comentario sobre el Script...
Por: Néstor Edo.
15/7/2009
De todas maneras si lo que quieres es colocar el 5 y a continución el 3, es decir, mostrar 53 en pantalla, lo puedes hacer, cambiando el operador + (mas) por el operador . (punto).
Esto lo que hace es concatenar (poner una al lado de la otra) las variables.

Script que muestra 53 en pantalla:
<?
$cadena="5"; //esto es una cadena
$entero=3; //esto es un entero
echo $cadena.$entero; //esto concatena las variables
?>
Tutorial
Por: alberto
16/7/2009
Está bueno este tutorial, sólo se necesita un par de los que dejan los avestrus para aprender
No entendi muy bien el comportamiento de la referencia a variables
Por: Yen
28/4/2010
Que tal. La verdad no entendi por que a la hora de ejecutar el script se repite el mensaje "MinombreesBobMinombreesBob". En las dos primeras 2 lineas no tengo problema, primero se declara el valor de la variable $foo='Bob' y posteriormente se declara que la variable $bar haga referencia al valor de la variable $foo. Pero en la linea donde se cambia el valor de la variable $bar (el valor al que hacia referencia) por la cadena "Mi nombre es $bar" porque php sigue tomando dentro de esta cadena que $bar tiene como valor la referencia al valor de la variable $foo??? y porque a la hora que se pide que se muestre el valor de la variable $foo, este tiene como valor "Mi nombre es Bob", el valor de $foo debe ser "Bob"???

eloyvl
Indicación indírecta de variables
11/10/2011
Apreciados amigos, les comento la siguiente problemas relacionados con la asignación de indicación de variables de forma indirecta:

$x= 'hola';
$b= 'x';
print $$b; //imprime 'Hola'.

Esto funciona perfectamente el problema lo tengo cuando lo hago con una array y específicamente cuando lo redirijo a una subarray.

Pongo un ejemplo:

<?php
$aMenu= array(
array(
'DeliriumSofo','',
array('Quines somos',''),
array('Donde estamos','')
),
array(
'Desarrolo de programas','',
array('Medicina',''),
array('Comercial','')
),
array('Reparaciones','')
);

$a= "aMenu";
$b= "aMenu[0]";

print_r($aMenu[0]); //Correcto
print '<br>------<br>';
print_r( $$a); //Correcto
print '<br>------<br>';
print_r ($$b); //error

?>

¿Tiene solución?.
Gracias

Eloy

Manuales relacionados
Categorias relacionadas
El autor
Rubén Alvarez
Redactor de DesarrolloWeb.com
http://www.desarrolloweb.com
Lectura recomendada
Últimas noticias
Donaciones
Si piensas que te hemos ayudado y merecemos tu apoyo económico...