2017-09-15 6 views
0

Ich habe ein Stück von PHP-Code, der mir rätselhaft, wenn ich es testen:strpos kann kein Apostroph finden?

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

, wenn ich mit dieser Zeichenfolge in der Variablen $ Eintrag testen:

'[email protected] 

die Funktion den Apostroph finden sollte und inkrementieren $found

Wenn ich nicht irre, und die Position dieses Apostroph ist Position Null?

Nur daran gedacht, lassen Sie mich wissen, wenn das der Grund ist, warum das passiert. Denn das würde mein Problem erklären und ich werde es anders kodieren.

Und danke!

+1

Ja, die Index ist Null. –

+1

Ja, 'false' bedeutet nicht gefunden,' 0' bedeutet gefunden als erstes Zeichen. Verwenden Sie '===', um den Unterschied zu erkennen. – jh1711

+3

Relevante Dokumentationsabschnitt: http://php.net/manual/en/function.strpos.php#refsect1-function.strpos-returnvalues ​​ –

Antwort

0

Ja, wenn es an der Bettelei ist dann der Index 0. Also:

$found = $found + 0 

Sie könnten wie etwas versuchen:

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

Oder:

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

Wenn das Ziel ist, um 1 zu erhöhen, '$ gefunden + = strpos ($ entry," ')! == false; 'ist auch ziemlich einfach, aber ich war mir nicht sicher, ob das was sie waren gingen oder nicht. –

+0

ich auch so gut. Übrigens. Es ist ein nettes Stück, um die Vertrautheit mit dem Typ-Casting von PHP zu testen. – guessimtoolate