Les deux valeurs sont '2' mais je ne reçois pas de vrai. Pourquoi?Pourquoi '==' ne fonctionne pas en PHP?
echo $getuser. "<br />";
echo $userurl. "<br />";
if ($getuser == $userurl) {
echo "true <br />";
}
Résultat
2
2
Les deux valeurs sont '2' mais je ne reçois pas de vrai. Pourquoi?Pourquoi '==' ne fonctionne pas en PHP?
echo $getuser. "<br />";
echo $userurl. "<br />";
if ($getuser == $userurl) {
echo "true <br />";
}
Résultat
2
2
Lorsque je tente
$getuser = 2;
$userurl = 2;
echo $getuser. "<br />";
echo $userurl. "<br />";
if ($getuser == $userurl) {
echo "true <br />";
}
Résultats:
2
2
true
Works pour moi. Sur XAMPP (Windows) et Linux (Apache). Donc, il y a problème probablement quelque part dans la configuration ou quelque chose ...
Au lieu de les faisant écho à, utilisez var_dump()
pour voir exactement ce qui est stocké dans les variables:
var_dump($getuser); echo "<br />";
var_dump($userurl); echo "<br />";
Je reçois 'string (1) "2" string (7) "2"' – patrick
ok je sais d'où ils viennent. Je dépouille une URL de '/ users/3104' à '3104' alors je me débarrasse de 7 caractères en utilisant '$ userurl = substr ($ users [' url '], 7). "
"; ' J'ai essayé d'utiliser trim ($ userurl, "\ 0") pour se débarrasser des octets NULL, mais cela ne fonctionne pas. –
patrick
trouvé la solution: '$ userurl = ltrim ($ users [' url '], "users /");' Merci! – patrick
Vous avez probablement des espaces parasites ou d'autres caractères qui ne sont pas faciles, ou peut-être pas possible de détecter visuellement.
utilisation
var_dump($getuser);
var_dump($userurl);
d'attention à la longueur de la chaîne. Pensez à utiliser trim() si nécessaire
+1 pour appeler spécifiquement les espaces. C'était aussi mon intuition. –
peut contenir de l'espace factice dans cela, utilisez comme celui-ci
echo $getuser. "<br />";
echo $userurl. "<br />";
if (trim($getuser) == trim($userurl)) {
echo "true <br />";
}
Je ne sais pas php, mais peut-être l'un d'entre eux est une chaîne et l'autre un entier? – house9
@ house9: PHP va les convertir aux mêmes types pour les vérifier pour '==', vous devez utiliser '===' pour faire une comparaison spécifique au type. – animuson
Si le code ci-dessus commence par $ getuser = 2 et $ geturl = 2, auriez-vous une réponse vraie? – Smandoli