Nina: alle Variablen anzeigen

Hi,

wie kann man sich in einem Script die Inahlte alle Variablen anzeigen lassen? Also wenn ich irgendwo im Script $foo="bar"; schreibe, soll bei der gesuchten Funktion auch die von mir gesetzte Variable ausgegeben werden.

Danke für Tipps

  1. Das wird in dieser Form wohl nicht funktionieren. Was du machen könntest wäre alle Variablen als Array anzuzeigen und anschließend sämtliche Werte dieses Arrays auszugeben.

    Was willst du den bewirken? Vielleicht gibt es eine praktikablere Lösung...

    1. Was willst du den bewirken? Vielleicht gibt es eine praktikablere Lösung...

      Würde gerne in einem etwas umfangreicheren Script, das über viele Dateien verteilt ist und nicht ganz so übersichtlich ist, zu Debugging Zwecken eine Ausgabe erzwingen damit...
      Dachte wirklich, dass es da eine Funktion dafür gab.

      1. Hi!

        Würde gerne in einem etwas umfangreicheren Script, das über viele Dateien verteilt ist und nicht ganz so übersichtlich ist, zu Debugging Zwecken eine Ausgabe erzwingen damit...

        Aha. Ja, warum hast du das denn nicht gleich gesagt?
        In diesem Fall würde ich empfehlen, einen PHP-Debugger einzusetzen.

        Wenn ich Webprojekte entwickele, dann arbeite ich meist mit der IDE Eclipse.
        Mit Hilfe einiger Plugins kann man daraus eine absolut geniale und verdammt mächtige IDE zur Entwicklung von PHP/MySQL/HTML/CSS/JavaScript/... machen.
        Eclipse bietet auch die Möglichkeit, einen PHP-Debugger zu integrieren.
        Damit hast du dann alle Variablen im Überblick und kannst dir auch jederzeit deren Inhalte anschauen.
        Speziell für Eclipse gibts von Zend noch einen freien Debugger, eine Installationsanleitung (bzw. die Url für den Eclipse-Update-Server) gibts unter http://www.eclipse.org/pdt/install.php#debugger

        Es gibt kommerzielle, aber auch freie PHP-Debugger.
        Hier wäre zwei kostenlose:
        Gubed PHP-Debugger
        Body PHP-Debugger

        Das Wiki von php::bar hat auch noch eine kleine Liste:
        http://www.phpbar.de/w/Kategorie:Debugger

        Und im Anhang F des PHP-Handbuchs findest du auch noch was über PHP-Debugger.

        Schöner Gruß,
        rob

      2. echo $begrüßung;

        Was willst du den bewirken? Vielleicht gibt es eine praktikablere Lösung...
        Würde gerne in einem etwas umfangreicheren Script, das über viele Dateien verteilt ist und nicht ganz so übersichtlich ist, zu Debugging Zwecken eine Ausgabe erzwingen damit...
        Dachte wirklich, dass es da eine Funktion dafür gab.

        Ja, es gibt die Error Handling and Logging Functions. Wenn du eine eigene Errorhandler-Funktion schreibst, wird diese beim Auftreten von Fehlermeldungen ausgeführt. Ihr übergeben wird unter anderem ein Array mit den Variablen des aktuellen Kontexts. Anderweitig hat man keinen (mir bekannten) Zugriff auf eine Liste aller Variablen, die innerhalb einer Funktion vorhanden sind. Den Aufruf des Errorhandlers kannst du auch gezielt über trigger_error() auslösen.

        echo "$verabschiedung $name";

  2. Hi!

    wie kann man sich in einem Script die Inahlte alle Variablen anzeigen lassen?

    Wozu das?

    Also wenn ich irgendwo im Script $foo="bar"; schreibe, soll bei der gesuchten Funktion auch die von mir gesetzte Variable ausgegeben werden.

    Wenn du dir eine Funktion schreibst, die dir Inhalte von Variablen anzeigen soll, dann wird diese Funktion wahrscheinlich gar nicht an deine Variablen rankommen. Daher wird aus deinem Vorhaben sicher nichts.
    Der Gültigkeitsbereich von Variablen ist beschränkt.
    Eine Funktion kann nur die Variablen sehen, die in der Funktion definiert wurden bzw. die, die der Funktion übergeben wurden oder halt globale Variablen.
    Es ist allerdings nicht schön, mit globalen Variablen zu arbeiten. Das sollte vermieden werden, wenn es denn möglich ist.
    Eventuell hilft dir das assoziative Array $GLOBALS weiter.
    Dieses enthält Referenzen zu allen Variablen, die gegenwärtig im globalen Gültigkeitsbereich des Skripts definiert sind.
    Mit Hilfe von foreach könntest du dieses Array durchgehen und dir so alle globalen Variablen und deren Inhalte ausgeben lassen.
    Allerdings kommst du so nicht in die Variablen, die lokal in irgendwelchen Funktionen definiert wurden.

    Vielleicht erklärst du mal den Sinn deines Vorhabens.
    Das scheint mir ein wenig merkwürdig zu sein...
    Eventuell gibt es eine viel bessere Lösung für dein Problem.

    Schöner Gruß,
    rob