kostenloser Webspace werbefrei: lima-city


PHP und goto

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    nigolaz

    Kostenloser Webspace von nigolaz, auf Homepage erstellen warten

    nigolaz hat kostenlosen Webspace.

    Gibt es in PHP die Möglichkeit, "goto" zu verwenden? Wenn ja, wie ist die korrekte Formulierung?

    mfg niGOlaz
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Nein die Möglichkeit besteht nicht. PHP arbeitet strikt von "oben nach unten".

    Und außerdem ist goto eh doof. Jeder ordentliche Programmierer wird versuchen dies zu vermeiden, da der Code dadurch sehr verstrickt wird.
  4. s***h


    Gibt es in PHP die Möglichkeit, "goto" zu verwenden? Wenn ja, wie ist die korrekte Formulierung?

    mfg niGOlaz


    Ich bin zwar noch ganz am Anfang php zu erlernen, aber mir ist ein solcher Befehl nicht bekannt.
    Ich denke, dass man das in php mit einer if-Abfrage hinbekommen kann.
  5. Also, goto ist selbst in der Ursprungssprache C aus Gründen der Leserlichkeit verpönt.
    Aber musst du selber wissen, ob du das einsetzen willst.

    In PHP gibt es kein "goto", aber du könntest statt dessen "include" verwenden und damit dann immer eine Datei laden, die die entsprechenden Befehle für den Bereich des goto's beinhaltet.
    Ist aber auch nicht das Wahre. Nimm lieber Funktionen und Schleifen.
  6. Autor dieses Themas

    nigolaz

    Kostenloser Webspace von nigolaz, auf Homepage erstellen warten

    nigolaz hat kostenlosen Webspace.

    tct schrieb:
    Nein die Möglichkeit besteht nicht. PHP arbeitet strikt von 'oben nach unten'.

    Und außerdem ist goto eh doof. Jeder ordentliche Programmierer wird versuchen dies zu vermeiden, da der Code dadurch sehr verstrickt wird.


    Ich weiss, dass goto nicht wirklich beliebt ist, ich versuche es selbst auch zu vermeiden, aber ich habs mir überlegt, es wäre im meinem Fall viel einfacher gewesen.

    sesch schrieb:
    Ich bin zwar noch ganz am Anfang php zu erlernen, aber mir ist ein solcher Befehl nicht bekannt.
    Ich denke, dass man das in php mit einer if-Abfrage hinbekommen kann.


    Danke dass du mir helfen willst, aber eine if-Abfrage ist hier fehl am Platz.


    Ich weiss schon, dass die Verwendung von goto nicht das wahre ist, aber Schleifen machen es einfach komplizierter. Zum Beispiel habe soll man ein neues Passwort anfordern können. Dann wird die selbe Seite neu geladen, aber durch switch wird jetzt das password verschickt und nicht mehr das Formular angezeigt.
    Mit goto wollte ich jetzt wieder an den Anfang von switch und entweder die login-seite oder das formular auszuführen, jenachdem, ob das Senden geklappt hat.

    Ich bin für Ideen offen. sonst muss ich es wohl mit Schleifen machen...
    Trotzdem danke für die Hilfe
  7. e**6

    warum nicht so?

    switch ($_GET['do'])
    {
    default: ....
    ...
    ...

    und dann :
    header("location: $_SERVER[PHP_SELF]?do=default");
    oder
    header("location: $_SERVER[PHP_SELF]");
  8. nigolaz schrieb:
    Ich weiss schon, dass die Verwendung von goto nicht das wahre ist, aber Schleifen machen es einfach komplizierter. Zum Beispiel habe soll man ein neues Passwort anfordern können.

    PHP ist eine inzwischen zumindest Pseudo Objektorientierte Sprache ... Du kannst das Ganze also über Klassen und Funktionen erledigen.
    Goto macht da auch wirklich keinen Sinn mehr.


    Dann wird die selbe Seite neu geladen, aber durch switch wird jetzt das password verschickt und nicht mehr das Formular angezeigt.
    Mit goto wollte ich jetzt wieder an den Anfang von switch und entweder die login-seite oder das formular auszuführen, jenachdem, ob das Senden geklappt hat.
    Ich bin für Ideen offen. sonst muss ich es wohl mit Schleifen machen...
    Trotzdem danke für die Hilfe

    class Userverwaltung
    {
      function PasswortPrüfen($Passwort)
    {...}
      function PasswortZurücksetzen($Passwort)
    {...}
      function Eingeloggt($Passwort)
    {...}
    
    }

    Dann kannst du später einfach per
    $Nutzer = new Userverwaltung;
    $_POST['Passwort']=$Nutzer->PasswortPrüfen($Passwort);

    wieder auf das Objekt zugreifen und je nach dem Rekursiv eine andere Funktion aufrufen... das ist dann sogar wesentlich übersichtlicher als eine Sprunganweisung und kann zudem Flexiebel eingesetzt werden.

    Beitrag geaendert: 21.3.2007 0:32:18 von keiax
  9. Autor dieses Themas

    nigolaz

    Kostenloser Webspace von nigolaz, auf Homepage erstellen warten

    nigolaz hat kostenlosen Webspace.

    Php und OOP, naja.
    Eine Lösung zu finden ist nicht wirklich schwer, aber ich wollte es möglichst einfach machen. Hab jetzt eine endloschlaufe while(true) und break 2, aber mit goto wärs viel übersichtlicher.
  10. Klar ist es kein wirklich optimales OOP, deshalb hab ich ja Pseudo OOP geschrieben ...
    Aber für deine Zwecke solte ein Klassen funktionen Modell reichen, insbesondere da du noch mit goto arbeiten willst und dass impliziert dass du mit OOP ohnehinn nicht wirklich gut umgehen kannst, denn dann währe goto in keiner Sprache mehr nötig...
  11. Autor dieses Themas

    nigolaz

    Kostenloser Webspace von nigolaz, auf Homepage erstellen warten

    nigolaz hat kostenlosen Webspace.

    Ich liebe OOP, aber halt in anderen Sprachen. Ich habs jetzt mit einer Schlaufe gelöst, OOP oder einfache Funktionen gingen auch. Aber ich produziere damit viel mehr "Schlangencode" als mit goto.

    Aber egal, Problem gelöst.
    Habe übrigens gelesen, in PHP6 soll es goto geben...?

    mfg niGOlaz

    PS: Ich würde auch jedem anderen von goto abraten


    <Gelöst>
  12. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!