Cita:
Iniciado por elitown87
Buenos días.
Hace un momento he sido capaz de modificar el código que me ha facilitado un miembro del foro (y alq le estoy tremendamente agradecida por ello, x cierto!) acorde a mis necesidades. He conseguido que funcione pero no acabo de entender qué es lo que hacen las líneas intermedias dentro del for a partir del is_numeric incluido, para qué sirven más que nada y porqué son necesarias. He cerrado el tema y no me he dado cuenta de preguntarle antes. Si alguien me puede aclarar mis dudas...gracias!
$archivos_y_directorios = scandir($directorio);
$maximo = -1;
for ($i = 0; $i < count($archivos_y_directorios); $i++) {
//is_dir indica si el nombre de archivo es un directorio
if (is_dir($ruta. "/" .$archivos_y_directorios[$i])){
//is_numeric comprueba si una variable es un número o un string numérico
if(is_numeric($archivos_y_directorios[$i])){
//intval obtiene el valor entero de una variable
if($maximo < intval($archivos_y_directorios[$i]), 10) {
$maximo = intval($archivos_y_directorios[$i], 10);
}
}
}
}
Te lo dice en los propios comentarios. is_dir comprueba si el string es un nombre de directorio y is_numeric si el valor es un número o string numérico.
Tal vez lo que no comprendes es porqué los if no tienen comparación lógica, eso es porque implícitamente sin comparación lógica if comprueba que sea TRUE, en caso de TRUE entonces realiza lo que hay entre corchetes { }
http://www.php.net/manual/es/control-structures.if.php Cita: Como se describe en la sección sobre expresiones , la expresión es evaluada a su valor booleano. Si la expresión se evalúa como TRUE, PHP ejecutará la sentencia y si se evalúa como FALSE la ignorará.
Un saludo.