jimbob: OOP: zugriff auf $HTTP_POST_VARS[] in klasse?

hallo,

wie bekomme ich in einer klasse zugriff auf $HTTP_POST_VARS[] ohne sie zu übergeben!

habe versucht im Konstruktor GLOBAL $HTTP_POST_VARS[]; lobal zu setzten damit ich später darauf zugreigfen kann, jedoch hat dies nichts eingebracht!

wie kann ich dies sonst machen?

THX jimbob

  1. Hi,

    wie bekomme ich in einer klasse zugriff auf $HTTP_POST_VARS[] ohne sie zu übergeben!

    1. $HTTP_POST_VARS ist veraltet (PHP3) und sollte durch $_GET, bzw. $_POST oder $_REQUEST ersetzt werden (PHP4).

    2. $HTTP_POST_VARS, bzw. die neueren Arrays brauchen seit PHP4 gar nicht mehr übergeben werden, weil sie Super-Global sind und automatisch in alle Bereichen zur Verfügung stehen...

    MfG
    Danny

    1. Zugriff auf die Vars sollte nach Möglichkeit direkt z.B. durch $_POST['id'] erfolgen, d.h. ohne die enthalteten Vars in den globalen Namensraum zu kopieren.

    2. danke für die hilfreichen tips!

      Danny

    3. Moin!

      1. $HTTP_POST_VARS, bzw. die neueren Arrays brauchen seit PHP4 gar nicht mehr übergeben werden, weil sie Super-Global sind und automatisch in alle Bereichen zur Verfügung stehen...

      _Nur_ die neuen Variablen sind superglobal, die alten sind es nicht.

      - Sven Rautenberg

  2. noch eine kurze frage dennoch wenn ich es nach der alten methode amche, wie geht es dann?

    GLOBAL $HTTP_POST_VARS;
    echo $HTTP_POST_VARS[$this->name];

    das funktioniert dennoch nicht!

  3. Hello,

    Du musst in der Wrapper-Funktion (ggf. ist das das Script selbst) dafür sorgen, dass die Variable $HTTP_POST_VARS vorhanden ist. Im Script sollte sie bei PHP bis Version < 5.x immer vorhanden sein. In einer Funktion / Methode, die dann ihrerseits wieder eine Funktion / Methode aufruft, ist sie natürlich nicht bekannt, wenn man sie nicht konsequent "durch_global_t".

    Besser ist es tatsächlich, sie per Parameter zu übergeben, dann kann man die Methoden auch mit $_POST nutzen, wenn man dann nämlich einfach nur dies übergibt. Es ist noch überlegenswert, ob man nicht sowieso Call_by_reference nutzt, also nur eine referenz übergibt. Mann muss dann zwar innerhalb der Methoden aufpassen, was man tut, aber es spart enorm Speicher.

    Dass Du die "alten" nicht mehr verwenden solltest, haben dir die Anderen schon geraten und ich würde mich auch daran halten.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen