Foros del Web » Programando para Internet » PHP »

autoincrementar (no entiendo que pasa)

Estas en el tema de autoincrementar (no entiendo que pasa) en el foro de PHP en Foros del Web. En abstracto, tengo esto: Código PHP: $i  =  12 ; $i ++; echo  $i - 1 ;  Lo uso para recorrer un directorio con archivos ...
  #1 (permalink)  
Antiguo 24/09/2010, 10:17
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
autoincrementar (no entiendo que pasa)

En abstracto, tengo esto:

Código PHP:
$i 12;

$i++;

echo 
$i-1
Lo uso para recorrer un directorio con archivos numerados, y comprobar cual es el último. Empiezo el conteo desde 12 porque no me interesan los anteriores.

La cuestión es que mi script comprueba si un archivo existe o no. Si existe, aumenta el valor de $i para comprobar si el próximo existe. Ej:

boletin12.html
boletin13.html

La función empieza por el 12. Existe. Incrementa el $i. Encuentra el 13. Incrementa el $i. No encuentra el 14, entonces debe devolver $i-1 (es decir, 13).

El error que tengo es que $i-1 me devuelve 14. Entonces tengo que recurrir NO SE POR QUE a $i-2. Y aclaro que en mis archivos no hay ningun boletin14.html

La funcion es esta. Cuál puede ser el error de logica?

Código PHP:
function obtener_boletin() {
        
        global 
$carpeta_boletines;
        
            
            
            
$i 12// numero de boletin desde donde empezar a buscar el mas actual
            
            
while(true){
                
                
$archivo 'boletin' $i++ . '.html'
                if(!
file_exists($carpeta_boletines.$archivo))            
                    return 
file_get_contents($carpeta_boletines.'boletin' . ($i-2) . '.html');                
            }    
        

  #2 (permalink)  
Antiguo 24/09/2010, 10:42
 
Fecha de Ingreso: febrero-2010
Mensajes: 818
Antigüedad: 14 años, 2 meses
Puntos: 55
Respuesta: autoincrementar (no entiendo que pasa)

borrar.... :(
  #3 (permalink)  
Antiguo 24/09/2010, 10:45
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: autoincrementar (no entiendo que pasa)

La cuenta empieza realmente por el 13. Si.

Para mi el tema es que no estoy habituado a usar while, a entender su lógica. Lo que quisiera es estar seguro de que la funcion es buena, eso es todo.
  #4 (permalink)  
Antiguo 24/09/2010, 11:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: autoincrementar (no entiendo que pasa)

es buena la función, sin embargo cometes el error de desconocer el funcionamiento del operador de incremento...

ya que después de esta linea:
Código PHP:
$i++; 
dicha variable incrementa su valor por uno, de ahí que necesitas usar -2 para solventarlo...

¿como solucionarlo?
R: pues incrementando la variable solo al final de haberla usado, comparado, etc...
Código PHP:
            while(true){
                
$archivo 'boletin' $i '.html'
                if(!
file_exists($carpeta_boletines.$archivo))            
                    return 
file_get_contents($carpeta_boletines.'boletin' . ($i-1) . '.html');
                
$i++;
            } 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: Ninguno
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 22:38.