Foros del Web » Programando para Internet » PHP »

funcion facil no funciona :S

Estas en el tema de funcion facil no funciona :S en el foro de PHP en Foros del Web. Gente aver si me pueden ayudar, ya que soy bastante nuevo en php... me hice una funcion para ver si existe caracter eligido dentro de ...
  #1 (permalink)  
Antiguo 04/06/2011, 21:40
 
Fecha de Ingreso: junio-2011
Mensajes: 2
Antigüedad: 13 años, 5 meses
Puntos: 0
funcion facil no funciona :S

Gente aver si me pueden ayudar, ya que soy bastante nuevo en php... me hice una funcion para ver si existe caracter eligido dentro de string eligido (ya se que existe esa funcion, pero lo pago para practicar) este es el codigo:

Código PHP:
function siElSimboloExiste ($string$simbolo){
    
            for(
$i 0$i <= 100$i ++){
        
                if(
$string{$i} == $simbolo){
                    return 
true;
                } 

                if(
$string{$i} != $simbolo){        
                    return 
false;
                }
            }

gracias :)
  #2 (permalink)  
Antiguo 04/06/2011, 21:52
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: funcion facil no funciona :S

1- En el for, por qué lo haces hasta 100? Qué tal si el string que le pasarás es de 20 caracteres o de 200? En el primer caso, será una cuenta innecesaria. En el segundo, faltarán caracteres... Entonces, usa mejor strlen checando la longitud del string
2- Por qué usas $string{$i} en lugar de $string[$i]??? No confundas corchetes con llaves
3- Por qué usas un segundo if en lugar de else/elseif?

Necesitas aprender más sobre PHP amigo..

Saludos!
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #3 (permalink)  
Antiguo 04/06/2011, 22:00
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 14 años
Puntos: 48
Respuesta: funcion facil no funciona :S

Ademas de lo que ya te comentaron en cuanto no encuentra el caracter regresa un false lo cual esta mal deves hacer que al terminar el for si continua que ahi regrese el false

ejemplo:

envio palabra y simbolo
...
hago el for hasta el total de caracteres que contiene palabra dentro del for
busco por posicion el simbolo si es == regreso true, en ese instante sino continuo, termina for y como no lo encontro regreso false.

Y ya ahora si tendrias una funcion para buscar un caracter en una cadena.
  #4 (permalink)  
Antiguo 04/06/2011, 22:09
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: funcion facil no funciona :S

Ah, cierto, algo como:
Código PHP:
function siElSimboloExiste ($string$simbolo){
            
$foo false;
            for(
$i 0$i <= 100$i ++){
        
                if(
$string[$i] == $simbolo){
                    
$foo true;
                }
            }
            return 
$foo;

Claro, corrige lo que te dije anteriormente
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #5 (permalink)  
Antiguo 04/06/2011, 22:35
 
Fecha de Ingreso: junio-2011
Mensajes: 2
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: funcion facil no funciona :S

gracias a todos, ya me funciono y ya encontre mis errores. Sourcegeek ya se que tengo que aprender mas de PHP para eso estoy practicando ;)
lo del for ya se que no es correcto hacer 100 iteraciones cuando no es nesesario, lo que pasa que este codigo lo hice en 1 min, y no pensaba en esos detalles. Lo de corchetes no es confundirme, es que para caracretes dentro del string uso llaves, y para array uso corchetes
  #6 (permalink)  
Antiguo 05/06/2011, 03:16
 
Fecha de Ingreso: noviembre-2009
Mensajes: 226
Antigüedad: 15 años
Puntos: 19
Respuesta: funcion facil no funciona :S

¿Y porqué limitas a 100 los caracteres del string? Sería strlen($string).

Saludos!
__________________
Mi blog: magdkudama.com

Mi clase de validación de datos: magdkudama.com/validation
  #7 (permalink)  
Antiguo 05/06/2011, 06:25
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 14 años, 3 meses
Puntos: 202
Respuesta: funcion facil no funciona :S

Es cierto que estás aprendiendo. Sería bueno que le echaras un ojo al manual de php. Sólo hay que buscar manual php en google.

En la parte de manejos de strings tienes la función strpos
Por tanto... es innecesario hacer un bucle en la cadena para saber si contiene un caracter.


Código PHP:
echo buscarChar('Este es un ejemplo''w'); // false
echo buscarChar('Este es un ejemplo''e'); // true

function buscarChar($str$char)
{
strpos($str$char)? $value='el caracter '.$char.' existe'$value='el caracter '.$char.' NO existe';
return 
$value.'<br>';

__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(
  #8 (permalink)  
Antiguo 05/06/2011, 15:25
Avatar de Sourcegeek
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: $mex['B.C.'];
Mensajes: 1.816
Antigüedad: 15 años, 6 meses
Puntos: 322
Respuesta: funcion facil no funciona :S

GrupoC: Ya le sugerí eso
IEKK:
Cita:
(ya se que existe esa funcion, pero lo hago para practicar)
__________________
Buscas desarrollador web? Sourcegeek. Diseño web, Maquetación y Programación
¡Escribe bien! Esto es un foro, no un Facebook para que escribas con los pies
  #9 (permalink)  
Antiguo 05/06/2011, 16:29
 
Fecha de Ingreso: agosto-2010
Ubicación: Tenerife
Mensajes: 893
Antigüedad: 14 años, 3 meses
Puntos: 202
Respuesta: funcion facil no funciona :S

Cita:
Iniciado por Sourcegeek Ver Mensaje
GrupoC: Ya le sugerí eso
IEKK:
Si te fijas no indica que se refiriese al strpos por eso dije que evitase los bucles . Ahora bien a lo mejor era los for lo que practicaba yo supuse que eran las funciones pasando parametros y su correspondiente return
__________________
Pensaba que internet era una gran biblioteca de sabiduría, hasta que comprendí que un libro no puede tener mil páginas llenas de faltas de ortografía... :(

Etiquetas: facil, funcion
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 13:06.