Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 19

Thema: [PHP] Variablengeltungsbereich

  1. #1
    Kaiser(in)
    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard [PHP] Variablengeltungsbereich

    In JS isses ja so, wenn man ne anonyme function iwo deffiniert, kann man darin auch die Variablen verwenden, die in dem Bereich gelten, in dem man sie deklariert. Ich habe in PHP jetzt aber folgendes problem:
    PHP-Code:
    $IDPP=new idpp(true);
    function 
    err_msg($text$type) {
        return 
    $IDPP->getTemplate()->err_msg($text$type);

    Normalerweise klappt alles super, aber wenn jetzt ne andere klasse die ja global verfügbare funktion err_msg() aufruft, kommt:
    Code:
    Notice:  Undefined variable: IDPP in C:\Programme\xampp\XXX\index.php on line 5
    
    Fatal error:  Call to a member function getTemplate() on a  non-object in C:\Programme\xampp\XXX\index.php  on line 5
    
    Kann mir das bitte einer erklären?
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  2. #2
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: [PHP] Variablengeltungsbereich

    err_msg() mag vielleich global sein, aber $IDPP nicht. Deshalb kommst du gar nicht bis err_msg().
    Something big is coming. And there will be pirates and ninjas and unicorns...

  3. #3
    Bandit
    Gast

    Standard AW: [PHP] Variablengeltungsbereich

    Den Sinn dieser Funktion sehe ich nicht. Wenn du das Objekt hast, musst du in dem Fall keine Extrafunktion draus basteln.

    Alternativ: Objekt als Funktionsparameter übergeben oder (unschön) $_GLOBALS nutzen.

  4. #4
    Kaiser(in)
    Themenstarter

    Registriert seit
    29.03.2009
    Ort
    1011 1111 1011 WorldWideWeb
    Beiträge
    2.439
    Danke
    2
    Bekam 6 mal "Danke" in 6 Postings

    Standard AW: [PHP] Variablengeltungsbereich

    Danke für die schnellen Antworten!
    Das Problem ist, dass die Funktion err_msg eben vom Template veränderbar sein soll, ich aber aber des Template nich global machen will und das die Funktion eben schon in 30-40 mal kreuz und quer verbaut is. Aber gut, ich machs jetzt erstmal via $_GLOBALS.
    EDIT: Hm, die Variable Globals scheints nich zu geben.... son mist aber auch.
    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.
    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  5. #5
    Bandit
    Gast

    Standard AW: [PHP] Variablengeltungsbereich

    Sorry $GLOBALS nicht $_GLOBALS

    Siehe http://php.net/manual/de/reserved.variables.globals.php

  6. #6
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: [PHP] Variablengeltungsbereich

    Zitat Zitat von Tobse Beitrag anzeigen
    Das Problem ist, dass die Funktion err_msg eben vom Template veränderbar sein soll, ich aber aber des Template nich global machen will [...]
    Du weißt, dass eben dafür globale Variablen da sind, oder?
    Entweder du machst es zum Teil des Templates, übergibst sie oder machst sie global.

    PHP-Code:
    $IDPP=new idpp(true);
    function 
    err_msg($text$type) {
        global 
    $IDPP;
        return 
    $IDPP->getTemplate()->err_msg($text$type);

    Something big is coming. And there will be pirates and ninjas and unicorns...

  7. #7
    Pion
    Gast

    Standard AW: [PHP] Variablengeltungsbereich

    Nicht GLOBAL verwenden

    Genau für sowas ist Registry da:

    http://www.phpbar.de/w/Registry



    mfg

  8. #8
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: [PHP] Variablengeltungsbereich

    Zitat Zitat von Pion Beitrag anzeigen
    Nicht GLOBAL verwenden
    warum?
    Something big is coming. And there will be pirates and ninjas and unicorns...

  9. #9
    Pion
    Gast

    Standard AW: [PHP] Variablengeltungsbereich

    Weil du nie genau weist ob deine Variable von irgendwo anders genutzt wird
    überschrieben wird oder gelöscht wird etc





    mfg

  10. #10
    Jedi Ritter Avatar von Dodo
    Registriert seit
    26.04.2008
    Ort
    Wien
    Alter
    27
    Beiträge
    3.774
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: [PHP] Variablengeltungsbereich

    Zitat Zitat von Pion Beitrag anzeigen
    Weil du nie genau weist ob deine Variable von irgendwo anders genutzt wird
    überschrieben wird oder gelöscht wird etc
    soweit ich weiß, beherrschen einzelne PHP-Scripts keine Parallelverarbeitung und sind somit ein rein iterativer Prozess. Damit weiß man den Inhalt zu jedem Zeitpunkt.
    Something big is coming. And there will be pirates and ninjas and unicorns...

Stichworte

Berechtigungen

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