| Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS | ||||
03/3/04 -
Escribo esta ayuda técnica sobre "variables variables" porque me parece
un tema de no muy fácil comprensión pero
de gran ayuda en cuanto a desarrollo con PHP, espero que a todos pueda
ayudarnos a comprender un poco mejor si utilizo algún
ejemplo práctico que en algunos momentos me ha ayudado a resolver ciertos
problemas.
La explicación más sencilla y fácil de comprender se me ocurre sea la
traducción al castellano de php.net, así que la
pondré tal cual y después aplicaré la práctica procurando expresarme mas
claramente.
############# Aquí comienza la explicación del sitio #######
A veces es conveniente tener nombres de variables variables. Dicho de otro
modo, son nombres de variables que se pueden
establecer y usar dinámicamente. Una variable normal se establece con una
sentencia como:
<?php
$a = "hello";
?>
Una variable variable toma el valor de una variable y lo trata como el
nombre de una variable. En el ejemplo anterior,
hello, se puede usar como el nombre de una variable utilizando dos signos de
dolar. p.ej.
<?php
$$a = "world";
?>
En este momento se han definido y almacenado dos variables en el árbol de
símbolos de PHP: $a, que contiene "hello", y
$hello, que contiene "world". Es más, esta sentencia:
<?php
echo "$a ${$a}";
?>
produce el mismo resultado que:
<?php
echo "$a $hello";
?>
Ambas producen el resultado: hello world.
############ Y aquí termina la explicación #############
El URL es http://mx.php.net/manual/es/language.variables.variable.php
Según creo, si hemos tenido algún contacto con la programación, habremos comprendido
bastante bien la explicación, pero ¿ y como nos puede llegar a servir? ¿ en
que ocasiones me puede ayudar?. Pues en
particular lo he contemplado en situaciones donde en un archivo tengo que poner
varios checkbox o radio buttons y en el siguiente
tengo que examinar una a una esas variables; y como no deseo realizarlo de esta forma,
los termino metiendo en un for, pero si he metido los nombres de los checkbox de la
siguiente manera...
<form name='form1' method='post' action='guarda_preferencias.php'>
<table width='700' border='0'>
<tr>
<td><span class='style4'>Para Empezar </span></td>
</tr>
<tr>
<td><blockquote class='style5'><strong>
<input type='checkbox' name='pref_1' value='bienvenida'>
Bienvenida</strong></blockquote></td>
</tr>
<tr>
<td><blockquote class='style5'><strong>
<input type='checkbox' name='pref_2' value='temario'>
Temario </strong></blockquote></td>
</tr>
y así sucesivamente hasta pref_n; en mi archivo guarda_preferencias.php,
después del for que empezaría la revisión de la transferencia de
cada checkbox, existiría el ligero inconveniente de tener que revisar $pref_$i,
lo cual es un tremendo problema porque
$pref_ no existe. Lo anterior yo lo he resuelto de la siguiente manera:
hago uso de variables variables que me permitirán
obtener el valor que realmente quiero, que es pref_1, pref_2....pref_n .
<?
for ($i=1;$i<=n;$i++){ //n es por supuesto el total de elementos checkbox
que hayamos creado
$nombre = "pref_$i";
$prefer = $$nombre;
if ($prefer != "") print "$nombre si trae algo, que es $prefer";
?>
Con lo cual $nombre hago que sea pref_ más el valor de $i, que irá
aumentado de uno en uno cada vez que entre al for,
y despues $prefer me dará el valor real de pref_1, pref_2, pref_3 y así
hasta n, pudiendo yo evaluar cada checkbox uno a
uno sin problemas, en este caso yo solo estoy evaluando que no esté vacío e
imprimo el nombre y el valor.
Espero que haya quedado un poquito mas claro para todos, saludos!!
| Autoría, licencia y acciones sobre este artículo | ||||||
|
Informe de Roberto Bárcenas*
URL: http://www.chicosyescritores.org Atención: Copyright. Este artículo no se puede reproducir sin la autorización expresa del autor. * Para consultas técnicas utilizar la lista de correo.
|
| Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar. |
| Se muestra un comentario revisado |
| Añadir un comentario del artículo |
| Comentarios sin revisar |
| Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente. |
| Ver los comentarios no revisados |
| Añadir un comentario del artículo |
| Enlaces: |
| Maestrosdelweb |
Lectura recomendada + PHP 5 Compra este libro en Agapea, la librería urgente a domicilio. |
||||||||||
Tienda DesarrolloWeb