PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : strpos PHP


mapel110
2008-04-17, 14:10:39
Sucht erstes Vorkommen des Suchstrings und liefert die Position

Das hört sich sehr toll an. Warum findet er dann aber die "260" nur in Strings wie "99992609999" und nicht in Strings wie "2603" oder "2605", wo die 260 ganz am Anfang steht?

Ist das so ein Sonderfall, dass es dafür was anderes braucht? :|

Coda
2008-04-17, 14:13:49
Ich glaube dass dein Problem eher ist dass du sowas machst wie

if(strpos(...)) {
}

Das funktioniert nicht, weil es im Falle von "2603" 0 zurückgibt, was bei einem dynamischen Vergleich auch "FALSE" ist

Kurz und knapp du musst schreiben:

if(strpos(...) !== FALSE) {
}

Ja, tatsächlich mit zwei =.

Das sind halt die kleinen Problemchen wenn man eine dynamisch typisierte Sprache verwendet ;)

mapel110
2008-04-17, 14:19:42
Sowas hab ich mir schon gedacht, ich wusste nur hiermit nichts anzufangen.


(strpos("bbb", "aaa") >= 0) returns true EXPECTED FALSE
(strpos("bbb", "aaa") == true) returns false expected false
(strpos("bbb", "aaa") == false) returns true expected true
(strpos("bbb", "aaa") === true) returns false expected false
(strpos("bbb", "aaa") === false) returns true expected true
(strpos("bbb", "aaa") !== false) returns false expected false
(strpos("bbb", "aaa") !== true) returns true expected true

(strpos("aaa", "aaa") >= 0) returns true expected true
(strpos("aaa", "aaa") == true) returns false EXPECTED TRUE
(strpos("aaa", "aaa") == false) returns true EXPECTED FALSE
(strpos("aaa", "aaa") === true) returns false EXPECTED TRUE
(strpos("aaa", "aaa") !== false) returns true expected true
(strpos("aaa", "aaa") === false) returns false expected false
(strpos("aaa", "aaa") !== true) returns true EXPECTED FALSE

Ich kenne sowas von Cobol nicht ;D

Mit zwei == funktionierts tatsächlich. Thx :)

Coda
2008-04-17, 14:25:35
Ich kenne sowas von Cobol nicht ;D
Cobol :ugly:

rotalever
2008-04-17, 17:47:45
== (und natürlich entsprechende) Untersuchen ob der Inhalt der Variablen gleich ist, also 1 ist gleich "1" oder 0 ist gleich FALSE
=== (etc.) überprüft auch noch den Typ der Variable.