Foros del Web » Programando para Internet » PHP »

Funciones llamadas desde foreach

Estas en el tema de Funciones llamadas desde foreach en el foro de PHP en Foros del Web. Hola a todos: No estoy muy versado en las funciones, pero tengo el siguiente código y quisiera saber porqué me devuelve error y cuál sería ...
  #1 (permalink)  
Antiguo 19/11/2010, 10:57
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 8
Pregunta Funciones llamadas desde foreach

Hola a todos:

No estoy muy versado en las funciones, pero tengo el siguiente código y quisiera saber porqué me devuelve error y cuál sería una posible solución.

El código es:

<?php
$contador = 1;
$indice = 3;
$valor = "a";
function mi_funcion()
{
echo '<br>'.$index.': '.$value;
}
while ($contador <= $indice)
{
$matriz[$contador] = $valor;
$contador = ++$contador;
$valor = $valor."a";
}
foreach($matriz as $index => $value)
{
mi_funcion();
}

?>


Por otro lado, los errores que devuelve son:

Notice: Undefined variable: index in /Applications/MAMP/bin/mamp/ ... on line 7

Notice: Undefined variable: value in /Applications/MAMP/bin/mamp/ ... on line 7

El problema es que tengo varias matrices cuyos valores debo procesar de forma muy parecida y he pensado que una función sería la forma más adecuada, pero esto es lo que me ha salido.

Muchas gracias por anticipado a todos.
  #2 (permalink)  
Antiguo 19/11/2010, 11:04
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Funciones llamadas desde foreach

$index y $value no están definidas, tal como dice el error. Fíjate en tu código, tienen otro nombre.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 19/11/2010, 11:15
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 8
Pregunta Respuesta: Funciones llamadas desde foreach

Hola, de nuevo:

Pero estarían definidas en el "foreach", ¿no?

De todas formas, he cambiado los valores del foreach para que tome las variables con que se crea la matriz pero me sigue dando el mismo error (variando el nombre de las variables, por supuesto):

<?php
$contador = 1;
$indice = 3;
$valor = "a";
function mi_funcion()
{
echo '<br>'.$contador.': '.$valor;
}
while ($contador <= $indice)
{
$matriz[$contador] = $valor;
$contador = ++$contador;
$valor = $valor."a";
}
foreach($matriz as $contador => $valor)
{
mi_funcion();
}
?>


En cualquier caso, muchas gracias por tu atención.
  #4 (permalink)  
Antiguo 19/11/2010, 11:20
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Funciones llamadas desde foreach

Es por el scope.

Salu2.
  #5 (permalink)  
Antiguo 19/11/2010, 11:34
Avatar de auttranadhie  
Fecha de Ingreso: noviembre-2008
Ubicación: Madrid (España)
Mensajes: 156
Antigüedad: 15 años, 4 meses
Puntos: 8
Respuesta: Funciones llamadas desde foreach

¡Muchas gracias!

Ahora sí funciona.

Saludos.

Etiquetas: foreach, funciones, llamadas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:40.