Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/01/2014, 12:27
Avatar de eduardobrutaldeath
eduardobrutaldeath
 
Fecha de Ingreso: agosto-2013
Ubicación: América
Mensajes: 306
Antigüedad: 11 años, 6 meses
Puntos: 3
Respuesta: Consulta sobre lo permisible en los valores de los parámetros de las funci

Cita:
Iniciado por pateketrueke Ver Mensaje
Es normal que lo siguiente no sirva:
Código PHP:
Ver original
  1. function loquesea($p_1, $p_2, $p_3){
  2.    $a = 1;
  3.    $b = 2;
  4.    $c = 3;
  5.    echo $p_1 + $p_2;
  6. };
  7. loquesea($a, $b, $c); //variables como valores de parámetros

La razón es sencilla: el ámbito de las variables.

Las variables $a, $b y $c las defines dentro de la función, por lo tanto existen dentro de la función únicamente.

No puedes usarlas fuera de la función porque están fuera del ámbito donde fueron definidas.

Eso se explica en el siguiente manual: http://www.php.net/manual/en/languag...bles.scope.php

Ahora, por su puesto que se pueden usar variables, así:

Código PHP:
Ver original
  1. function loquesea($p_1, $p_2, $p_3){
  2.    echo $p_1 + $p_2;
  3. };
  4.  
  5. $a = 1;
  6. $b = 2;
  7. $c = 3;
  8.  
  9. loquesea($a, $b, $c); //variables como valores de parámetros

¿Por qué?

Porque las variables, para poder ser usadas, deben definirse en el mismo contexto donde serán usadas.

Gracias por la ayuda,
Una última consulta por favor
Antes ya había pensado en una solución parecida pero no había funcionado, mira hice esto:

Código PHP:
Ver original
  1. function loquesea($p_1, $p_2, $p_3){
  2.                        global $a;
  3.                        global $b;
  4.                        global $c;
  5.  
  6.             $a = 1;
  7.             $b = 2;
  8.             $c = 3;
  9.             echo $p_1 + $p_2 + $p_3;
  10.         };loquesea($a, $b, $c);

Como puedes ver, dentro de mi función estaba convirtiendo a mis variables en globales pero igual el código seguía sin funcionar ¿Por qué?