Foros del Web » Programando para Internet » PHP »

ayuda algo simple novaton

Estas en el tema de ayuda algo simple novaton en el foro de PHP en Foros del Web. hola que tal tengo una duda que creo que es simple , quiero hace una funcion que me sume + 1 a una variable: Código ...
  #1 (permalink)  
Antiguo 06/01/2010, 14:03
Avatar de mauro770  
Fecha de Ingreso: mayo-2009
Mensajes: 109
Antigüedad: 14 años, 11 meses
Puntos: 1
De acuerdo ayuda algo simple novaton

hola que tal tengo una duda que creo que es simple , quiero hace una funcion que me sume + 1 a una variable:
Código PHP:
<?php 
function asd($i){
$i $i 1;
return 
$i;
}
$a 1;
asd($a);
echo 
$a;// aca me imprime 1 cuando tendria que ser 2
?>
el problema aca es que no me imprime 2 me imprime 1 , que esta mal ?
  #2 (permalink)  
Antiguo 06/01/2010, 14:06
Avatar de pato12  
Fecha de Ingreso: septiembre-2007
Ubicación: Salta
Mensajes: 1.620
Antigüedad: 16 años, 6 meses
Puntos: 101
Respuesta: ayuda algo simple novaton

Porque hay no le estas reasignando el dato a la variable. Prueba asi:
Código PHP:
Ver original
  1. $a=asd($a);
o
Código PHP:
Ver original
  1. asd(&$a);// El &, sirve para "apuntar" hacia la variable. :p
__________________
Half Music - www.halfmusic.com
  #3 (permalink)  
Antiguo 06/01/2010, 14:07
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: ayuda algo simple novaton

No estas asignando a $a el resultado de la funcion asd.
  #4 (permalink)  
Antiguo 06/01/2010, 14:12
Avatar de mauro770  
Fecha de Ingreso: mayo-2009
Mensajes: 109
Antigüedad: 14 años, 11 meses
Puntos: 1
De acuerdo Respuesta: ayuda algo simple novaton

wow wow wow xD , muchas gracias ! no entendia por que sucedia eso y ahora me quedo claro y me da algo de verguenza haberme pasado algo tan logico xD ...
gracias nuevamente y comento que anda perfecto solo que con la 2da opción que me acerco pato12
"asd(&$a);" me suma perfectamente +1 a la variable pero arriba del echo tambien me imprime lo siguiente :
Código:
Warning: Call-time pass-by-reference has been deprecated; If you would like to 
pass it by reference, modify the declaration of asd(). If you would like to enable call-time 
pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in 
C:\wamp\www\xxxxxxxxxxx\saddsasdadsa.php on line 7
que podria ser ? .. la verdad me gusto esta forma por que es algo mas rapida y compacta pero sale ese error..
  #5 (permalink)  
Antiguo 06/01/2010, 14:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: ayuda algo simple novaton

la solución está en cambiar el comportamiento de la referencia, esto es, en la función... no en su invocación
Código PHP:
function foo( &$bar)
{
  
$bar += 1;
}
$candy 2;
foo($candy);
echo 
$candy
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 06/01/2010, 14:25
Avatar de mauro770  
Fecha de Ingreso: mayo-2009
Mensajes: 109
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: ayuda algo simple novaton

muchas gracias, mas claro que el agua. la verdad que me parece muy util esa tecnica.
saludos

Etiquetas: simple
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:01.