Dans PHP, la fonction StripOS est utilisée pour trouver la position d'une chaîne dans une autre chaîne (cas insensible). Cette fonction renvoie l'indice de localisation trouvé, ou si vous n'êtes pas trouvé, faux . Cependant, lorsque la fonction SCRIPOS renvoie 0, de nombreux développeurs pensent à tort qu'il est faux car en PHP, le nombre 0 et la valeur booléenne false sont équivalents. Alors, la fonction Stripos renvoie-t-elle 0 FAUX ? Pourquoi y a-t-il un mauvais jugement? Comment devrions-nous comprendre correctement cette valeur de retour? Ensuite, nous répondons à ces questions une par une.
Le prototype de fonction de Stripos est le suivant:
stripos(string $haystack, string $needle, int $offset = 0): int|false
$ Haystack : La chaîne à rechercher.
$ aiguille : la chaîne à trouver.
$ Offset : Démarrez la recherche à partir de cet emplacement (facultatif).
La fonction de cette fonction consiste à renvoyer la position où $ aigule apparaît d'abord dans $ haystack (à partir de 0). Si la chaîne n'est pas trouvée, false est renvoyé.
$haystack = "Hello World";
$needle = "world";
$position = stripos($haystack, $needle);
echo $position;
La sortie est:
6
En effet, dans la chaîne "Hello World" , le premier emplacement où "World" (cas insensible) apparaît est la position d'index 6.
De nombreux développeurs peuvent le comparer directement avec FALSE lors de la jugement de la valeur de retour de la fonction Stripos . Supposons qu'il y ait le code suivant:
$haystack = "test string";
$needle = "test";
if (stripos($haystack, $needle) === false) {
echo "Pas trouvé";
} else {
echo "Trouvé";
}
Dans ce cas, Stripos renvoie 0 car "Test" apparaît depuis la position 0 dans "Test String" . Par conséquent, malgré la recherche de la chaîne de correspondance, le programme publie toujours "non trouvé" car 0 est considéré comme faux dans PHP.
Afin de juger correctement la valeur de retour de Stripos , nous devons éviter de comparer directement avec False . L'approche correcte consiste à utiliser l'opérateur de comparaison strict === pour déterminer si le faux est renvoyé et considérer que 0 est une position de correspondance valide. Voici un exemple de code modifié:
$haystack = "test string";
$needle = "test";
$position = stripos($haystack, $needle);
if ($position === false) {
echo "Pas trouvé";
} else {
echo "Trouvé,L'emplacement est:".$position;
}
Dans ce cas, le programme sortira correctement:
Trouvé,L'emplacement est:0
De cette façon, grâce à l'opérateur de comparaison stricte === , nous pouvons faire la distinction entre faux (indiquant que non trouvé) et 0 (indiquant que la position de correspondance est 0).
Lorsque vous jugez la valeur de retour de Stripos , assurez-vous de faire attention aux points suivants:
N'utilisez pas == Comparaison : car en php, 0 et false sont équivalents, l'utilisation == entraînera des jugements incorrects.
Utilisez une comparaison stricte === : Cela peut distinguer les faux (non trouvés) et 0 (indique que la chaîne a une correspondance au début).
En outre, il est recommandé de définir des valeurs par défaut raisonnables ou d'effectuer une gestion des erreurs pour les valeurs renvoyées par Stripos dans le développement réel pour assurer la robustesse du programme. Par exemple:
$position = stripos($haystack, $needle);
if ($position === false) {
// Gérer les situations non fondées
} else {
// Gérer la situation trouvée
}
Dans PHP, lorsque la fonction StripOS renvoie 0 , cela ne signifie pas que la chaîne correspondante ne peut être trouvée, mais plutôt que la chaîne correspondante commence en position 0 . Afin d'éviter de considérer par erreur 0 comme faux , nous devons utiliser l'opérateur de comparaison stricte === pour déterminer si la valeur de retour est fausse , garantissant ainsi que la logique de jugement du programme est correcte.
En comprenant la valeur de retour de Stripos et en prenant des méthodes de comparaison appropriées, nous pouvons éviter efficacement les erreurs de jugement et écrire du code PHP plus robuste.