Ankündigung

Einklappen
Keine Ankündigung bisher.

perl eval und $@ in php?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • perl eval und $@ in php?

    hi,

    bin von perl aus zu php gekommen und bin relativ überrascht das es ein so nützliches konstrukt wie

    Code:
    eval {
    ......
    }
    if ($@) {
    ....
    }
    in php nicht zu geben scheint (also den $@-teil meine ich). in perl ist es so das, sollte innerhalb des eval-blockes ein fehler auftreten, $@ auf die fehlermeldung gesetzt wird, ansonsten (also kein fehler) enthält $@ garantiert einen leerstring (in perl = false)

    fand diese möglichkeit immer sehr praktisch für debugging-zwecke, gibt es etwas ähnliches in php? hab das manual gelsen aber nichts gefunden, gibt es irgendeinen grund warum sowas nicht in der sprache enthalten ist?
    was macht ihr um ein ähnliches verhalten zu erreichen (und ich meine jetzt nicht mithilfe von try-catch)

    danke für alle infos........


  • #2
    Bin nicht sicher was du meinst, aber du kannst die Fehlerausgabe von eval() unterdrücken aber abfragen
    Code:
    if (!@eval(..)) { ..
    Aber eval() sollte man eh nicht verwenden, @-Fehlerunterdrückung schon garnicht.
    Wenn du darauf nicht verzichten willst, probiers mit try-catch. Geht aber erst ab PHP5.

    Kommentar


    • #3
      Da steht aber nicht eval() sondern eval{}, also eval Block
      siehe: http://www.rocketaware.com/perl/perlfunc/eval.htm

      Nein, eine genaue Entsprechung, die return,die(),Fehler, u.ä. abbildet und trotzdem im selben Kontext läuft, gibt es nicht bei php.

      Kommentar


      • #4
        Aber eval() sollte man eh nicht verwenden. @-Fehlerunterdrückung schon garnicht.
        nein, um fehlerunterdrückung gehts ja nicht, mit
        Code:
        if ($@) {
        ....
        }
        kann ich ja in perl durchaus angemessen auf fehler reagieren, und es ist oftmals schöner und passender als mit try-catch-finally.........

        Nein, eine genaue Entsprechung, die return,die(),Fehler, u.ä. abbildet und trotzdem im selben Kontext läuft, gibt es nicht bei php.
        schade, werd ich mich wohl mit abfinden müssen.......

        Kommentar


        • #5
          hallo, bin auch ein ur-perler. du wirst viele abstriche machen müssen und viele umwege gehen, wirst aber auch viele positivie effekte von php kennen lernen.
          Klick mich


          Kommentar

          Lädt...
          X