2017-09-15 4 views
0

J'ai un morceau de code PHP qui me déconcertant quand je le tester:strpos ne peut pas trouver l'apostrophe?

$found = $found + (int)(strpos($entry,"'")); // apostrophe 

quand je teste avec cette chaîne dans la variable $ entry:

'[email protected] 

la fonction doit trouver lapostrophe et incrémenter $found

SAUF si je me trompe, et la position de cette apostrophe est la position ZÉRO? Juste pensé à cela, laissez-moi savoir si c'est la raison pour laquelle cela se produit. Parce que cela expliquerait mon problème et je le coderais différemment.

Et merci!

+1

Oui, la l'index est zéro. –

+1

Oui, 'false 'signifie ne pas trouver,' 0' signifie que le premier caractère est trouvé. Utilisez '===' pour faire la différence. – jh1711

+3

Section pertinente de la documentation: http://php.net/manual/fr/function.strpos.php#refsect1-function.strpos-returnvalues ​​ –

Répondre

0

Oui, si elle est à la mendicité alors son index est 0. Donc:

$found = $found + 0 

Vous pouvez essayer quelque chose comme:

$found = strpos($entry,"'") === false ?: $found + 1; 

Ou:

if (strpos($entry,"'") !== false) { 
    $found += 1; 
} 
+0

Si le but est d'incrémenter de 1, '$ found + = strpos ($ entry," '")! == false;' est assez simple aussi, mais je ne savais pas si c'était ce qu'ils allaient pour ou non. –

+0

Je pense bien aussi. BTW. c'est un bon extrait pour tester la familiarité avec le casting de type php. – guessimtoolate