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)?
$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)
$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)