pregunta funciones

Iniciado por ccrunch, 26 Junio 2013, 00:33 AM

0 Miembros y 1 Visitante están viendo este tema.

ccrunch

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


ivancea96

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)

engel lex

$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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.