Foros del Web » Programando para Internet » PHP »

error con unset()

Estas en el tema de error con unset() en el foro de PHP en Foros del Web. hola mi problema es que esto: Código PHP: if( $unit [ pbuffs ]){ foreach( $unit [ pbuffs ] as & $pbuff ){ $pbuff [ timeleft ]--; if( ...
  #1 (permalink)  
Antiguo 19/11/2008, 07:43
 
Fecha de Ingreso: junio-2007
Mensajes: 46
Antigüedad: 16 años, 10 meses
Puntos: 0
error con unset()

hola

mi problema es que esto:

Código PHP:
if($unit[pbuffs]){
foreach(
$unit[pbuffs] as &$pbuff){
$pbuff[timeleft]--;
if(
$pbuff[timeleft]<=0){unset($unit[pbuffs][$pbuff]);}

me tira el error
Warning: Illegal offset type in unset in C:\wamp\www\functions.php on line 46
(la linea 46 es la del unset)

alguien sabe como solucionarlo?

muchas gracias
  #2 (permalink)  
Antiguo 19/11/2008, 07:59
Avatar de danielrivas  
Fecha de Ingreso: noviembre-2007
Ubicación: Preprocessing
Mensajes: 275
Antigüedad: 16 años, 5 meses
Puntos: 6
Respuesta: error con unset()

¿Has definido "$unit[pbuffs][$pbuff]"?
  #3 (permalink)  
Antiguo 19/11/2008, 08:00
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
Respuesta: error con unset()

proba ponerle los ' (comillas simples) al array
Código PHP:
if($unit['pbuffs']){
foreach(
$unit['pbuffs'] as &$pbuff){
$pbuff['timeleft']--;
if(
$pbuff['timeleft']<=0){unset($unit['pbuffs'][$pbuff]);}

sino podes intentar poner un @ delante del unset para q no muestre el error
__________________
Degiovanni Emilio
developtus.com
  #4 (permalink)  
Antiguo 19/11/2008, 08:14
 
Fecha de Ingreso: junio-2007
Mensajes: 46
Antigüedad: 16 años, 10 meses
Puntos: 0
Respuesta: error con unset()

ya esta solucionado
tenia ke unsetear $pbuff envez de $unit['pbuffs'][$pbuff], muy estupido de mi parte...

muchas gracias igual por responder y disculpen las molestias

edit: me volvi a confundir, tenia ke ser asi:

if($unit[pbuffs]){
foreach($unit[pbuffs] as $pbuff=>&$values){
$values[timeleft]--;
if($values[timeleft]<=0){unset($unit[pbuffs][$pbuff]);}
}

por si a alguien le interesa...

Última edición por sisko; 19/11/2008 a las 08:25
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 09:23.