Tengo el siguiente codigo :
$string = 'Hello World!';
if(stristr($string, 'Hello') === TRUE) {
echo 'CIERTO';
} else
echo 'FALSO';
y me devuelve FALSO
en cambio si :
$string = 'Hello World!';
if(stristr($string, 'Hello') === FALSE) {
echo 'FALSO';
} else
echo 'CIERTO';
me devuelve CIERTO.
Alguien puede decirme porque el primer codigo no funciona y en cambio el segundo si.
Lo unico que quiero es comprobar si existe una cadena de texto dentro de otra y me estoy volviendo loco.
Gracias
Prueba con este:
<?php
$string = 'Hello world';
if(stristr($string, 'Hello') == TRUE){
echo 'Cierto';
} else {
echo 'Falso';
}
?>
Lo unico que cambia es que de tres(3) === pasa a dos(2).
Saludos
He encontrado la solución.
El problema está que que la función stristr devuelve un string o false. NUNCA true.
En el código el único error y problema que hay es lógico.
Estas usando ===, con estos estas diciendo que el valor debe ser exactamente igual y del mismo tipo de datos.
En el if estas comparando un dato tipo string con un booleano y por esa razón el if nunca se cumplirá.
Puedes saber el tipo de dato de un valor, utilizando la función gettype() (http://www.php.net/manual/es/function.gettype.php).
Tipo de dato lógico o Booleano (http://es.wikipedia.org/wiki/Tipo_de_dato_l%C3%B3gico).
Saludos.
if(!stristr($string, 'Hello')){
echo 'Falso';
} else {
echo 'Cierto';
}
por que no usas return true/false? de hecho ya retorna un false por si acaso xD
Muchas gracias por todos vuestros consejos!!
Me han sido de grandiisima utilidad.