Probleme mit Referenzübergabe

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

  • Probleme mit Referenzübergabe

    PHP-Code:
    class menu {
        
        var 
    $_site null;
        

        
    //Kontruktor
        
    function menu(&$site) {
            
    $this->_site $site;
        }
        
        function 
    get_all(&$site) {
            
    $array_temp = array();
                    
    $result $this->_site->_db->query("SELECT * FROM... "); //funktioniert komischerweise
            
    ....

            
    $this->_site->assign(menu,$array_temp); //funktioniert nicht
            
    $site->assign(menu,$array_temp); //funktioniert
        
    }
    }{ 

    Kann mir jemand sagen warum die Referenzübergabe mit dem Konstruktor nicht klappt? Ich muss ja sonst immer die Referenz mit übergeben und das wäre etwas umständlich? Ich benutze Smarty und möchte die Werte mit dieser Variante übergeben....
    Zuletzt geändert von LJ_Skinny; 18.03.2005, 18:29.

  • #2
    auch dies machen
    PHP-Code:
    $this->_site = & $site
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      das war es nicht.

      Funktioniert
      PHP-Code:
      $this->_site->_db->query("SELECT * FROM... "); 
      Funktioniert nicht
      PHP-Code:
      $this->_site->assign(menu,$array_temp); //funktioniert nicht 
      $this ist das Objekt der Klasse "class site extends Smarty"

      Kann es damit irgendwie zusammenhängen? Assign ist eine Methode von Smarty und das Objekt _db ist aus meiner eigenen Klasse. Sollte aber eigentlich kein Problem sein....

      Kommentar


      • #4
        wie TBT gesagt hat ....
        PHP-Code:

            
        //Kontruktor
            
        function menu(&$site) {
                
        $this->_site = & $site;
            } 
        wenn es dann immer noch problem gibt, sind diese nicht aufgrund der übergeben referenz da.

        dann musst du dir mal deinen anderen code ansehen.....
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Kann es sein, da es sich um bei der Funktion assign um eine vererbte Funktion handelt, dieser Aufruf nicht möglich ist? Anders kann ich es mir nicht vorstellen... Da die DB genauso wie hier die Site übergeben wird und da funktioniert komischerweise alles....

          Kommentar


          • #6
            assign() ist eine smarty fkt?

            wenn ja, warum hast du dann db innerhalb von site. also db ist von smarty abgeleitet?

            warum nicht

            this site db ....

            this site smatty ....

            ?
            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


            Kommentar


            • #7
              Also

              DB

              PHP-Code:

              require 'Smarty.class.php';

              class 
              main extends Smarty {

              var 
              $_db null;

              function 
              main(&$db') {
                      $this->Smarty();
                          $this->_db = $db;
              }

              $site = new main($db); 
              so habe ich alles im meiner 'main' Klasse und kann diese Klasse auch meinen anderen Klassen übergeben..und habe auf alle aktuellen Variablen Zugriff....

              Kommentar


              • #8
                warum reichst du smarty nicht auch einfach als referenz rein?
                habe ich auch so gemacht. alle basis-classen, welche immer benötigt werden , sind als referenzen in meinen anderen classen vorhanden.
                INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                Kommentar

                Lädt...
                X