Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: ccrunch en 26 Junio 2013, 00:33 am



Título: pregunta funciones
Publicado por: ccrunch en 26 Junio 2013, 00:33 am
Tengo esta función:

Código:
<?php
$x=5; // global scope
$y=10; // global scope

function myTest()
{
global $x,$y;
$y=$x+$y;
}

myTest();
echo $y; // outputs 15
?>

Cómo sabe el echo $y que quiero imprimir el resultado de $x+$y, y no imprimir el valor 10 (asignado más arriba en la variable y)?



Título: Re: pregunta funciones
Publicado por: ivancea96 en 26 Junio 2013, 00:41 am
Código
  1. $y=$x+$y;
  2.  

Ahí dices que $y es $x+$y (15 = 5 + 10)
Supongo que con global $x,$y; le dices que coja las variables como públicas. (No se demasiado PHP)


Título: Re: pregunta funciones
Publicado por: engel lex en 26 Junio 2013, 03:03 am
Código:
$x=5; // global scope
$y=10; // global scope
se ejecuta inicialmente... asi que  $x = 5, $y = 10


Código:
function myTest()
{
global $x,$y;
$y=$x+$y;
}

(aunque el global aqui está mal usado ya que es para convertir una variable de un scope menor en scope global sin ella estar declarada en el global)
$x y $y estaban previamente declarados en un scope mayor y valian lo que les dijiste...

Código:
echo $y

asumió su variable $y del scope donde está (global)


si quieres saber más sobre los scopes en php
http://php.net/manual/es/language.variables.scope.php (http://php.net/manual/es/language.variables.scope.php)