Anzeige:
Ergebnis 1 bis 7 von 7

Thema: die. geordneter Rückzug?

  1. #1
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825

    die. geordneter Rückzug?

    Hallo Leute,

    ich stricke gerade an einem Programm, was nach Anfrage in diversen Functions komplette HTML-Seiten zum Anwender schickt.

    Ich wollte nach Senden der Seiten das Programm mit die beenden.

    Frage: Macht die einen geordneten Rückzug oder gibt es bei häufigen Aufrufen Probleme wie stack-overflow, seltsames Verhalten des Servers und andere Schweinereien?

    Code-Auszug:
    Code:
    switch($seite)
    { case 0: sende_anfangsseite(); die();
      case 1: sende_nachfrage(); die();
      case 2: if ($alles_komplett) sende_saten_raus($daten) else sende_wasistlos(); die;
    .....
    }
    so long,
    BlueJay

  2. #2
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    So lange du keine Meldung ausgeben willst solltest du einfach exit() benutzen. Außer der Meldung gibt es zwischen die() und exit() AFAIK keinen Unterschied.

    Zitat Zitat von BlueJay
    Frage: Macht die einen geordneten Rückzug oder gibt es bei häufigen Aufrufen Probleme wie stack-overflow, seltsames Verhalten des Servers und andere Schweinereien?
    Ich hatte bisher keine Probleme damit.

    Allerdings weiß ich nicht, ob bei einem exit eine ggf. mit register_shutdown_function() eingestellte Funktion noch aufgerufen wird.

  3. #3
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    auch exit kannst Du eine Meldung mitgeben:
    PHP-Code:
    exit("Programm beendet..."); 
    Zitat Zitat von php.net
    Note: The die() function is an alias for exit().
    Allerdings beendest Du Dein switch-case Konstrukt lieber mit break - nicht mit die()

    PHP-Code:
      $var=1;

      switch(
    $var)
      {
        case 
    1:  echo "eins"; break;
        case 
    2:  echo "zwei"; break;
        case 
    3:  echo "drei"; break;
        default: echo 
    "keins von allen...";
      } 
    Geändert von michael.sprick (19-09-2005 um 17:45 Uhr)

  4. #4
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    Zitat Zitat von michael.sprick
    auch exit kannst Du eine Meldung mitgeben
    Ich werd nie wieder ins übersetzte Manual gucken...
    Vergleiche:
    http://www.php.net/manual/de/function.exit.php
    http://www.php.net/manual/en/function.exit.php

    Wenn es keinen Unterschied zwischen die() und exit() gibt werd ich auch nie wieder die() benutzen.

    Das mit break stimmt nur, wenn nach dem switch kein Code mehr kommt.

  5. #5
    Registrierter Benutzer
    Registriert seit
    19.08.2004
    Beiträge
    404
    Das mit break stimmt nur, wenn nach dem switch kein Code mehr kommt.
    Ansichtssache... ich habe lieber einen einzigen, dafür wohldefinierten Ausstiegspunkt. Theoretisch kannst Du ja auch am Ende jeder Funktion ein exit() benutzen, wenn Du weißt, dass nach dieser Funktion nix mehr ausgeführt werden soll... aber schön ist das nicht. Für mich sind solche Sachen immer schlecht zu debuggen, schlecht zu erweitern, schlecht zu lesen...

  6. #6
    Registrierter Benutzer Avatar von BLUESCREEN3D
    Registriert seit
    08.11.2002
    Beiträge
    665
    Zitat Zitat von michael.sprick
    Ansichtssache... ich habe lieber einen einzigen, dafür wohldefinierten Ausstiegspunkt. Theoretisch kannst Du ja auch am Ende jeder Funktion ein exit() benutzen, wenn Du weißt, dass nach dieser Funktion nix mehr ausgeführt werden soll... aber schön ist das nicht. Für mich sind solche Sachen immer schlecht zu debuggen, schlecht zu erweitern, schlecht zu lesen...
    Jo, ich hätte das auch nicht so geschrieben, aber angenommen der Code sieht im Gesamtzusammenhang so aus:
    PHP-Code:
    if ($bla)
        {
        switch
            (...)
        }

    //hier gehts weiter, sollte es aber nicht, wenn $bla wahr ist 
    dann wäre es schon ein Unterschied, wenn man break einsetzt.
    Darauf wollte ich hinaus

  7. #7
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    Zitat Zitat von michael.sprick
    Ansichtssache... ich habe lieber einen einzigen, dafür wohldefinierten Ausstiegspunkt. Theoretisch kannst Du ja auch am Ende jeder Funktion ein exit() benutzen, wenn Du weißt, dass nach dieser Funktion nix mehr ausgeführt werden soll.
    Genau das ist der Fall: Seite ausgeben und wech! (leaf-node)
    Spart 'ne Menge Tipparbeit (Verschachtelung).
    Deshalb steht der Kram auch nicht in der Function, die die Seite ausgibt, sondern in dem switch-Konstrukt im Hauptprogramm.

    Ist eine Art Filter bis zu dem Punkt, an der Server belastet werden soll, sprich, die eigentliche Verarbeitung beginnt.

    so long,
    BlueJay

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •