Supportnet / Forum / Skripte(PHP,ASP,Perl...)
null == 0
Frage
moin
$zeile = ´#bla´;
if((strpos($zeile, ´#´))==0)
{
..
}
unterscheidet php nicht zwischen null und 0?
will halt, dass das if-statement nur ausgeführt wird, wenn an der ersten position ein ´#´ steht. allerdings ist die bedingung auch gültig, wenn das ergebniss null (im boolschen sinne) ist, also ´#´ nicht in $zeile vorhanden ist.
wie kann man da unterscheiden?
g,
disco
Antwort 1 von Supermax
nimm den identitätsoperator ===
außerdem mußt du mit "false" (logisch falsch) vergleichen, nicht mit null
also
außerdem mußt du mit "false" (logisch falsch) vergleichen, nicht mit null
also
if ((strpos($zeile,´#´) === false)Antwort 2 von disco
danke.
mit dem null == 0 hab ich mich vertan. es sieht ja so aus, als ob 0 wie false behandelt wird.
das mit dem === kenn ich.
leider nützt das hier nix, da die ´#´ ja auch an einer anderen position stehen könnte, aber nur etwas passieren soll wenn es an position 0 steht.
mit dem null == 0 hab ich mich vertan. es sieht ja so aus, als ob 0 wie false behandelt wird.
das mit dem === kenn ich.
leider nützt das hier nix, da die ´#´ ja auch an einer anderen position stehen könnte, aber nur etwas passieren soll wenn es an position 0 steht.
Antwort 3 von disco
ps: klar kann ich mir da jetzt mit ein paar zeilen mehr etwas zusammen basteln, um das problem zu umgehen. aber da muss es doch ne einzeilige lösung geben.
Antwort 4 von Supermax
wenn du Position 0 abfragen willst dann mach
Oder du machst überhaupt
if ((strpos($zeile,´#´) === 0Oder du machst überhaupt
if (substr($zeile,0,1) == ´#´)Antwort 5 von disco
thx
komischer weise habe ich das mit dem ===0 vorhin probiert, aber nen fehler bekommen. jetzt gehts. war wohl woanders der wurm drin.
danke
g,
disco
komischer weise habe ich das mit dem ===0 vorhin probiert, aber nen fehler bekommen. jetzt gehts. war wohl woanders der wurm drin.
danke
g,
disco

