Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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:

<?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 (php) [Seleccionar]

$y=$x+$y;


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
$x=5; // global scope
$y=10; // global scope

se ejecuta inicialmente... asi que  $x = 5, $y = 10


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...

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)