Variabel außerhalb der Klasse

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

  • Variabel außerhalb der Klasse

    Hallo ihr lieben,

    ich hab da mal eine Verständnisfrage:

    Ich hatte eine PHP-Datei in der vor einer Klasse eine andere Datei includiert wird und 2 Variabeln definiert werden.
    In der Klasse selbst wird dann versucht diese Variabeln für die Klasse zugänglich zumachen:

    global $sp;
    $this->sp = $sp;

    Frage:
    Wieso funktioniert das bei mir nicht (bei anderen laut diesen anderen aber schon) bzw. Welche PHP-Einstellung verweigert mir das? Geht das überhaupt?

    Ich zweifle mitlerweile an meinem Verstand.
    Gruß,
    ranzi
    Zuletzt geändert von RanzigeMilch; 28.02.2007, 17:02.
    Die Milch bleibt ranzig!

  • #2
    Es ist am besten etwas Code zu posten, damit eventuelle Fehler sichtbar werden. So kann man nur mutmaßen.
    Davon abgesehen ist es sauberer und ratsamer, eine außerhalb einer Klasse existierende Variable der Klasse als Parameter zu übergeben, statt sie in die global scope zu holen.
    PHP-Code:

    class test
    {
        public function 
    __construct($bla)
        {
            
    $this->bla $bla;
        }
    }

    $bla 'bla';
    $test_obj = new test($bla); 
    Nieder mit der Camel Case-Konvention

    Kommentar


    • #3
      EDIT:
      Tut mir leid... mein eigenes Posting zitiert.
      Nieder mit der Camel Case-Konvention

      Kommentar


      • #4
        das es anders geht ist mir klar, aber das ist auch nicht meine Frage!
        ich möchte lediglich wissen warum es so nicht funktioniert hat bzw haben könnte:
        PHP-Code:
        $sp "blabla";

        class 
        blabla
        {
           function 
        blabla()
          {
            global 
        $sp;
            
        $this->sp $sp;
          }

        Gruß,
        ranzi
        Die Milch bleibt ranzig!

        Kommentar


        • #5
          Definiere mal "Geht nicht". error_reporting eingeschaltet?

          Dass es nicht deine Frage gewesen ist, dass es anders geht, ist mir klar. Es ist nur ein Hinweis gewesen, um nicht zu sagen ein Rat.
          Nieder mit der Camel Case-Konvention

          Kommentar


          • #6
            geht nicht bedeutet die Variabeln waren in der Klasse leer...
            Die Milch bleibt ranzig!

            Kommentar


            • #7
              Dann poste mal bitte deinen Code (alle möglicherweise relevanten Stellen davon).
              Nieder mit der Camel Case-Konvention

              Kommentar


              • #8
                das habe ich bereits
                wo solls da noch mehr code geben?...
                Die Milch bleibt ranzig!

                Kommentar


                • #9
                  Original geschrieben von RanzigeMilch

                  wo solls da noch mehr code geben?...
                  Ich kann's auch sein lassen, dir zu helfen.
                  Im Übrigen funktioniert der von dir gepostete Code bei mir einwandfrei.
                  PHP-Code:
                  $sp "blabla";

                  class 
                  blabla
                  {
                     function 
                  blabla()
                    {
                          global 
                  $sp;
                          
                  $this->sp $sp;

                          echo 
                  $this->sp;
                    }
                  }

                  $blabla_obj = new blabla(); // gibt 'blabla' aus 
                  Mein soweit letztes Posting hierzu.
                  Nieder mit der Camel Case-Konvention

                  Kommentar


                  • #10
                    davon rede ich ja die ganze zeit,
                    das es bei anderen funktioniert aber bei mir nicht.
                    ich möchte gerne herausfinden warum...
                    Die Milch bleibt ranzig!

                    Kommentar


                    • #11
                      fehler beim testen?
                      zeig mal ein lauffähiges beispiel, welches bei dir nicht wie erwartet funktioniert.

                      Kommentar


                      • #12
                        da steht doch ein lauffähiges beispiel...

                        der fehler ist, das $sp innerhalb der klasse keinen wert hat...
                        Die Milch bleibt ranzig!

                        Kommentar


                        • #13
                          Original geschrieben von RanzigeMilch
                          da steht doch ein lauffähiges beispiel...

                          der fehler ist, das $sp innerhalb der klasse keinen wert hat...
                          da steht aber nichts von:

                          - Erzeugung einer Intanz der Klasse
                          - Ausgabe der zu prüfende Variable

                          wie hast du denn das überprüft?

                          Wenn man sagt "ein lauffähiges Beispiel", dann poste bitte auch. Wenn du zu faul bist, selbst an der Lösung mitzuwirken, dann brauchst du nicht wieder zu kommen und ich werde dir dabei gern behilflich sein

                          Kommentar


                          • #14
                            ...
                            PHP-Code:
                            $sp "blabla";

                            class 
                            blabla
                            {
                               function 
                            blabla()
                              {
                                    global 
                            $sp;
                                    
                            $this->sp $sp;

                                    echo 
                            $this->sp;
                              }
                            }

                            $blabla_obj = new blabla(); // gibt 'blabla' aus 
                            erzeugt bei mir keine ausgabe da $this->sp keinen wert hat..
                            Zuletzt geändert von RanzigeMilch; 01.03.2007, 09:41.
                            Die Milch bleibt ranzig!

                            Kommentar


                            • #15
                              Und wenn du
                              PHP-Code:
                              $sp "blabla";

                              class 
                              blabla
                              {
                                 function 
                              blabla()
                                {
                                      
                              $this->sp $GLOBALS['sp'];
                                      echo 
                              $this->sp;
                                }
                              }

                              $blabla_obj = new blabla(); // gibt 'blabla' aus 
                              machst ?

                              Gruss

                              tobi
                              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                              Kommentar

                              Lädt...
                              X