tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
416
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von danielmueller
    danielmueller danielmueller ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Ort
    Odernheim
    Beiträge
    148
    Ich habe mir eine mysql Klasse geschrieben um mir ein wenig die Arbeit zu erleichtern. Nun stehe ich allerdings vor einem Problem ich möchte inerhalb einer Funktion die Funktionen meiner Klasse benutzen zb um eine Query zu senden (leider sucht aber php zuerst nach Funktionen und initialisiert erst dann meine Klasse auch wenn die Funktion am Schluss steht). Ist das irgendwie möglich?
     

  2. #2
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.806
    Blog-Einträge
    5
    Natürlich geht das, warum auch nicht?

    PHP-Code:
    <?php

    class Foo
    {
        function 
    bar()
        {
            echo 
    "Foobar!";
        }
    }

    function 
    test()
    {
        global 
    $f;
        
    $f->bar();
    }

    $f = new Foo();
    test();

    ?>
     
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

  3. #3
    MrHankey MrHankey ist offline Mitglied Bronze
    Registriert seit
    May 2004
    Beiträge
    27
    EDIT: sorry falscher post
    Geändert von MrHankey (07.09.04 um 21:32 Uhr)
     

  4. #4
    Avatar von danielmueller
    danielmueller danielmueller ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Ort
    Odernheim
    Beiträge
    148
    Naja bei mir geht es irgendwie nicht. Hier mein Code:
    PHP-Code:
    function db_get_template ($tpl_name, &$tpl_source, &$smarty_obj)
          { 
          
    // Datenbankabfrage um unser Template zu laden,
          // und '$tpl_source' zuzuweisen
          
    $query=$mysql->query("SELECT Template FROM Test WHERE Section=$tpl_name");
          
    $tpl_source $mysql->get_results($query);
          echo 
    "Fehler".mysql_error();
          echo 
    $tpl_source['Template'];
          return; 
    Als Fehlermeldung erhält man;
    Fatal error: Call to a member function query() on a non-object in C:\apachefriends\xampp\htdocs\1.php on line 40
    Ich interpretiere das so als wäre das Objekt mysql nicht initalisiert, ist es aber!
     

  5. #5
    Registriert seit
    Jul 2001
    Ort
    Bayern
    Beiträge
    969
    Woher soll denn der Parser wissen worauf $query in der Funktion verweisen soll?
    Regel Nummer 1 beim Entwickeln:
    PHP-Code:
    error_reporting(E_ALL); 
     

  6. #6
    Avatar von danielmueller
    danielmueller danielmueller ist offline Mitglied Gold
    Registriert seit
    Jan 2004
    Ort
    Odernheim
    Beiträge
    148
    Und wie kann ich das beheben? Ich habe jetzt mal versucht einfach die Klasse in der Funktion nochmal zu initialisieren. Meine Funktion sieht dann etwa so aus:
    PHP-Code:
      function db_get_template ($tpl_name, &$tpl_source, &$smarty_obj)
          { 
          
    // Datenbankabfrage um unser Template zu laden,
          // und '$tpl_source' zuzuweisen
          
               
    $mysql=new mysql("localhost""root""");
    $mysql->select_db("daniel-portal");
          
    $query=$mysql->query("SELECT Template FROM Test WHERE Section=$tpl_name");
          
    $temp_tpl_source $mysql->get_results($query);
          
    $tpl_source=$temp_tpl_source['Template'];
          
    //echo "Fehler".mysql_error();
          
    echo "$tpl_source";
          return;
          
          } 
    Nun klappt es zwar aber ich kann mir irgendwie nich vorstellen das die sehr Performant ist. gibt es vielleicht noch eine andere Möglichkeit wo ich nicht in jeder Funktion ein und diesselbe Klasse initialisieren muss?
    Geändert von danielmueller (08.09.04 um 08:26 Uhr)
     

  7. #7
    Registriert seit
    Jul 2001
    Ort
    Bayern
    Beiträge
    969
    Wenn db_get_template und select_db beide Methoden der Klasse mysql sind, dann hilft dir das Schlüsselwort this weiter. Näheres gibts in der Doku und in den PHP OOP Tutorials auf dieser Seite.
     

Ähnliche Themen

  1. Funktionen aus mmsystem.h nutzen
    Von Cappaja im Forum VisualStudio & MFC
    Antworten: 1
    Letzter Beitrag: 28.07.09, 15:39
  2. Nutzen von Klassen und Funktionen
    Von exitboy im Forum PHP
    Antworten: 14
    Letzter Beitrag: 04.06.08, 14:01
  3. Windows Funktionen nutzen
    Von TobGod im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 22.01.07, 09:35
  4. Antworten: 4
    Letzter Beitrag: 17.09.04, 17:52
  5. Funktionen aus DLLs nutzen
    Von Rene Albrecht im Forum C/C++
    Antworten: 9
    Letzter Beitrag: 24.10.03, 21:28