tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
375
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    maxOn-line maxOn-line ist offline Mitglied
    Registriert seit
    Apr 2006
    Beiträge
    18
    Hallo,

    bin neu hier weil ich ein Problem habe *g* ...
    um das ganze kurz zu erklären... Ich habe eine Datei per fscanf eingelesen und einen array in dem jede Zeile ein neuer eintrag ist, der als string gespeichert wird. In dem Array suche ich nach Einträgen mit "10" als Wert um von dort an Werte in ein neues array zu speichern. Unter anderem kommt es vor, dass einer dieser werte "10.0" ist. Wenn ich dann also das array weiterdurchsuche soll er "10.0" überspringen und nicht das gleich machen wie bei "10".

    Da es Strings sing dachte ich, dass ich einfach eine Bedingung $array[$stelle] == "10" nutzen kann um das Einlesen der werte zu starten... er reagiert aber bei $array[$stelle] = "10.0" genau so wie bei $array[$stelle] = "10"... .. soll er aber nciht.

    Was kann ich da machen?

    Gruss, maxOn
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.806
    Blog-Einträge
    5
    Versuch es mal mit dem typsicheren Vergleichsoperator === (ja, das sind drei Gleichheitszeichen!).
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    birnkammer birnkammer ist offline Mitglied Platin
    Registriert seit
    Dec 2004
    Beiträge
    666
    Vielleicht noch zur Erklärung:

    PHP führt automatisch eine Typkonvertierung durch, d.h. dass false das gleiche ist wie 0, 0.0 "", oder array(), NULL. Aber jedoch für die jeweiligen Typen (0 - Integer, 0.0 - Float, ""-Zeichenkette, array() - Array)

    Bei TRUE ist es sogar noch "schlimmer": Alles was nicht 0, 0.0, "", array(), NULL, oder ein objekt ohne Mitgliedsvariablen ist,wird bei einer boolschen Überprüfung automatisch TRUE
    http://de.php.net/manual/de/language.types.boolean.php

    Um jetzt wirklich zu wissen ob es das "richtige" False/TRUE ist kann man entweder mit den === - Operator (3 Gleichheitszeichen), wie Matthias schon geschrieben hat, oder man überprüft den Rückgabewert von gettype().

    So das wärs mal zu dem Hintergrund von dem allem
     
    Nichts kann existieren ohne Ordnung - Nichts kann entstehen ohne Chaos
    (Albert Einstein)

  4. #4
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    In diesem Zusammenhang ist die PHP-Typen-Vergleichstabelle sicherlich lehrreich. Du kannst dein Wissen ja mal testen: die PHP-Syntax-Prüfung von BlueShoes.org.
     
    Markus Wulftange

  5. #5
    maxOn-line maxOn-line ist offline Mitglied
    Registriert seit
    Apr 2006
    Beiträge
    18
    jopa,

    tripple = hat's gebracht. :-D

    danke für die antworten und die Erklärung.
    Gut zu wissen wie php in diesen fällen reagiert...

    gruss, maxOn
     

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 25.08.10, 19:13
  2. Eingabe in der timeline: "time*100" - bei Effekt "turbulentes Versetzen"-"Evolution"
    Von MTMonline im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 2
    Letzter Beitrag: 25.04.08, 09:49
  3. Finder methods + JBoss + Was expecting one of: "CONCAT" "SUBSTRING" ... "(" ... <STRI
    Von cengizhdde im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 6
    Letzter Beitrag: 27.05.05, 15:29
  4. Antworten: 2
    Letzter Beitrag: 19.05.05, 19:51
  5. "IsValid" bleibt immer auf "false"
    Von Saber im Forum .NET Archiv
    Antworten: 8
    Letzter Beitrag: 03.02.04, 23:31