Wenn Wert nicht vorhanden dann

  • Guten Abend,


    ich hoffe mir kann hier jemand helfen. Ich habe folgendes Script



    Keine Ahnung warm hier die Umbrüche nicht gehen, meine Funktion sieht in Wirklichkeit so aus


    [Blockierte Grafik: http://s1.directupload.net/images/140714/a8gl9xms.png]



    Wenn ein User in ein Feld 12:00 Uhr eingibt, funktioniert es, weil

    PHP
    $parts[0]

    und

    PHP
    $parts[1]

    gefüllt wird. Gibt er aber nur 12 ein, dann bekomme ich ein Fehler "Notice: Undefined offset: 1" ist zwar nicht weiter schlimm, denn ich könnte diesen unterdrücken, aber schön ist es dennoch nicht. Wie könnte ich in der Funktion nun prüfen, ob

    PHP
    $parts[1]

    gefüllt ist, wenn NICHT, dann fülle diesen Wert bitte automatisch mit 00!


    Hab es schon so getestet, aber funktioniert nicht


    PHP
    if($parts[1] === '') {				
        $parts[1] = "00";				
      } else {  
    
    
    
    
      }



    habt Ihr eine Idee? Wäre wirklich klasse.

  • Hallo, deine Umbrüche habe ich mal hinzugefügt (nicht ganz wie bei dir).


    Was du brauchst ist die Funktion isset:


    PHP
    if(!isset($parts[1])){
        $parts[1] = "00";
      }


    Isset überprüft ob eine Variable gesetzt ist, das Ausrufezeichen davor kehrt die Funktion in dem Fall um, also stimmt die Bedingung wenn $parts[1] nicht gesetzt ist und der Codeblock wird ausgeführt, ein else brauchst du nicht mehr und du kannst auch { und } sparen, ich habe sie der Übersicht halber drin.


    Wenn du diese Prüfung mit isset ausführst bevor du check_time() aufrufst erhältst du auch kein Notice von PHP, isset unterdrückt dies automatisch.

  • Hallo Basiii,


    vielen Dank für deine schnelle Hilfe. Es hat geklappt. Aber eine Frage habe ich noch, warum ging es mit meiner Version nicht? Ich dachte immer mit


    if($parts[1] === ''")



    prüfe ich ob in der Variable was drin steht, wenn nicht, dann fülle diese. Hab ich dieses falsch verstanden? Und was war der Fehler, dass mein Code nicht richtig angezeigt wurde?


    Du schreibst dass man die {} weg lassen könnte, wie würde die Schreibweise dann aussehen und wenn die Fehlermeldung unterdrück wird, ist es dann dennoch sauber? oder ist das einfach eine Lösung dass die Meldung nicht mehr angezeigt wird?

  • prüfe ich ob in der Variable was drin steht, wenn nicht, dann fülle diese.


    Nein.
    Wenn Du etwas ohne isset() prüfst, dann muss es vorhanden sein.
    Bei der Zuweisung kann es nicht existent sein.
    Der Unterschied:

    PHP
    if($parts[1] === '') // hier soll IN $parts die Ebene 1 geprüft werden, welche nicht existiert. Daher die Meldung
    $parts[1] = 1; // hier würde man etwas zuweisen. $parts und dessen Ebene 1 wird also erstellt (oder überschrieben, wenn schon vorhanden)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!