Bonjour,
J'ai un texte de la forme : >texte
je veux tester chaque fois si la phrase commence ou pas par le signe >, voici mon code :
mais il affiche toujours que c'est faux!Code:if(substr($temp[0], 0, 1) = '>' )
POURQUOI?
Version imprimable
Bonjour,
J'ai un texte de la forme : >texte
je veux tester chaque fois si la phrase commence ou pas par le signe >, voici mon code :
mais il affiche toujours que c'est faux!Code:if(substr($temp[0], 0, 1) = '>' )
POURQUOI?
tu peux faire ca :
Code:
1
2 if ($temp[0] =~ /^\>/)
PARCEQUE !!!!!Citation:
Envoyé par ibtisss
Parce que le test d'égalité, lorsqu'il s'agit de chaines de caractères, se fait avec l'opérateur eq.
En outre, un test d'égalité, lors d'opérations numériques, se fait au moyen de l'opérateur ==.
L'usage de l'opérateur = est à réserver exclusivement aux affectations de valeurs.
En plus, dans le cas présent, pas de bol, la fonction substr est lvaluable, ce qui signifie qu'elle a le droit de se retrouver en partie gauche d'une affectation. Donc le code que tu as écrit se contente de mettre un '>' dans toutes les chaines que tu testes, et de retourner au test un résultat comme quoi il a bien fait la substitution. Pas cool, non ?
Essayes plutôt :Code:if (substr ($temp[0], 0, 1) eq '>' )