Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/07/2007, 20:07
DarioDario
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 18 años, 10 meses
Puntos: 2
Re: Variables globales?

Cita:
Iniciado por albina Ver Mensaje
Hola el problema que tengo es el siguiente: tengo una función que recibe una variable, realiza alguna operación con ella dentro de la función y luego termina. La cosa es que si yo quiero mostrar el valor que la variable tenia adentro de la función, en una línea fuera de la función no lo hace. Paso un código para que se entienda


global $n,$m;
FUNCTION operar($n,$m)
{ echo "El resultado de 3*".$n."+5*".$m . "en la función es: ", 3*$n+5*$m, "<br>";
echo "el valor de n dentro de la función es: ",$n,"<br>";
}
operar(5,3);
echo "el valor de n después de ejecutar la función es: ",$n,"<br><br>";

en la última línea no me muestra el valor de $n, no da error.
Si alguien me puede decir que estoy haciendo mal, gracias, estoy empezando y la verdad no se como hacerlo.
Ufff... tienes un error grande sobre el ámbito de una variable. Primero te recomiendo que vuelvas a leer la parte donde se explican estas cosas en el manual oficial.

Estas haciendo mal uso de global. Cuando vos estas "ubicada" fuera de cualquier función (llamemosle la raiz del script) este es el ámbito global. Cuando estas dentro de una función puedes usar una variable del ámbito global siempre y cuando uses global para decir que variable es (por esto te decía que hacías mal uso). También recuerda que todo aquello que declares dentro de una función se destruye cuando se termina la ejecución de la función. Dentro de una función también tienes otro "truquito", usar el el array super global $GLOBALS, este array contiene todas las variables declaradas a lo largo de la vida de ese script.

En realidad no se que quieres hacer asi que no puedo poner un ejemplo para que veas como funciona pero voy a colocar un ejemplo a ver si le atino y entiendes un poco más:

Código PHP:

$nombre 
'dario';

function 
prueba()
{
    global 
$nombre;
    echo 
$nombre.'<br>';
    
$nombre 'ocles';
}

prueba();

echo 
$nombre;

/*

Lo anterior imprime esto:
dario
ocles
*/ 
Saludos.