Foros del Web » Programando para Internet » PHP »

Concepto de Posicion en "substr"

Estas en el tema de Concepto de Posicion en "substr" en el foro de PHP en Foros del Web. Hola a todos nuevamente Quisiera saber si alguien me puede explicar lo siguiente: Si en las lineas tenemos for($i = strlen ($_POST['username']); $i >= 0; ...
  #1 (permalink)  
Antiguo 05/10/2005, 06:47
 
Fecha de Ingreso: octubre-2005
Mensajes: 23
Antigüedad: 18 años, 6 meses
Puntos: 0
Concepto de Posicion en "substr"

Hola a todos nuevamente

Quisiera saber si alguien me puede explicar lo siguiente:

Si en las lineas tenemos

for($i = strlen ($_POST['username']); $i >= 0; $i--)
{

$char = substr($_POST['username'], $i, 1);
}

Teniendo en cuenta que usuario es = demon

Como el "substr" se posiciona en la cadena?

porque a mi entender seria asi (aunque se que esta mal)

demon
01 2 34

entonces como en el bucle "for" la "$i--" invierte el sentido de la cadena y a su vez el "substr" se posiciona en la posicion 1 de la longitud de la "$i"

a mi logica quedaria

ednom

Pero se que mi logica no esta correcta, asi que si alguien me podria explicar con claridad la posicion que toma el substr y porque? Se lo agradeceria muchisimo

Salu2
Demonfire
  #2 (permalink)  
Antiguo 06/10/2005, 05:18
 
Fecha de Ingreso: julio-2005
Mensajes: 38
Antigüedad: 18 años, 8 meses
Puntos: 0
Buenos días demonfire (yo otra vez)

Te explico detalladamente.

Para el usuario:demon

strlen ($_POST['username']);

No te va a dar 4, si no 5 ya que ese es realmente el tamaño de la cadena, por lo que podrás deducir que al entrar al bucle $i vale 5 que está fuera de la cadena.

Seguimos explicando en la segunda vuelta. $i vale 5-1=4, tal y como tu pusistes la posición 4 corresponde a la letra 'n'

Pasamos a tu problema con esta función:

substr($_POST['username'], $i, 1);

El substr, lo que está haciendo en este caso es posicionarse en la posición $i, es decir, 4 en esta vuelta, y desde esa posición pilla el primer caracter ( al poner el 1), en este caso la letra 'n'.

Como podrás deducir(creo) en la siguiente vuelta se posicionará en la posicion 3, cogiendo un caracter, la 'o'.

posición $i=2 caracter 'm'

Por lo tanto al ir concatenando desde la o hasta la d, es...nomed

Espero que lo hayas entendido
Saludos
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 07:13.