Peter: Typerkennung Verlass darauf?

Hi,

ich bezihe mich noch mal auf http://forum.de.selfhtml.org/archiv/2008/4/t170491/#m1114558.

//ergibt true, wenn $iId == 80437, aber false, wenn $iId == 26171

In der Regel verwende ich so etwas:

if($result < 1){return false;}
oder
if(!$result){return false;}

In der Vergangenheit hatte ich schon mal Probleme damit, aber das hing meissten mit einer "0" oder mit einem leeren Array. Was da jetzt genau war weiss ich nicht mehr, anscheinend gehe ich da nun wohl anders vor denn die Probleme tauchten die letzten Jahren nicht mehr auf.

Aber wie man oben sieht, werden zwei Zahlen(zumindest sehen sie aus) einmal als Integer genommen und einmal als String. Bedeutet das bei mir könnte mal die Bedingung if($result < 1) irgendwie falsch interpretiert werden, weil es als String angesehen wird?

Oder wenn das Result tatsächlich mal "0" rauswirft können dann Komplikationen entstehen?

Im Moment funktioniert alles wie es soll, möchte es halt nur präventiv mal wissen.

Peter

  1. PHP ist typensicher, d.h. ein String wird, wenn er mit einer Zahl verglichen werden soll, nach Möglichkeit in eine Zahl umgewandelt. Wenn Du einen Fehler suchst, beobachte zunächst die Werte, die zu dem Fehler führen können und grenze ihn so weit wie möglich ein. Dann gebe die möglicherweise fehlerhaften Variablen mit var_dump aus und prüfe das Ergebnis.

    Gruß, LX

    --
    X-Self-Code: sh:( fo:) ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: Unusual
    X-Please-Search-Archive-First: Absolutely Yes
  2. echo $begrüßung;

    ich bezihe mich noch mal auf http://forum.de.selfhtml.org/archiv/2008/4/t170491/#m1114558.
    »  //ergibt true, wenn $iId == 80437, aber false, wenn $iId == 26171

    Das kann ich nicht nachvollziehen.

    » var_dump(ctype_digit(80437));      //ergibt true
    » var_dump(ctype_digit(26171));      //ergibt false

    Beides ergibt unter 5.2.8 (und Windows) true.

    echo "$verabschiedung $name";