klasse in funktion aufrufen?

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

  • klasse in funktion aufrufen?

    moin,


    ich habe eine mysql klasse die die verbindung und abfragen macht:

    $db = new mysql();
    $db->query("SELECT * ...")

    nun möchte ich aber in einer funktion diese klasse benutzen:

    PHP-Code:
    function smarty_modifier_getusername($string)
    {
        
    $username $db->query("SELECT username
                                   FROM tab_users
                                   WHERE user_id = 
    $string
                                   LIMIT 0,1"
    );
        
    $string $db->fetch($username);
        return 
    $string;

    was mir aber nur ein

    Fatal error: Call to a member function on a non-object in /var/www/webx/html/www.domain.de/smarty/plugins/modifier.getusername.php on line 13

    zeile 13 ist diese: $username = $db->query("SELECT username

    was muss ich machen damit ich in der funktion diese klasse verwenden kann ...
    the end comes faster than you think - you've already reached it!

  • #2
    das objekt $db existiert in diesem "scope" nicht, d.h. es ist innerhalb dieser funktion nicht verfügbar.
    du kannst es global machen, oder (meiner meinung nach eine bessere wahl) - übergib das objekt per referenz an die funktion als parameter.
    trotzdem kommt es auf die restliche architektur an, was an dieser stelle sinnvoller ist.

    Kommentar


    • #3
      Original geschrieben von penizillin
      das objekt $db existiert in diesem "scope" nicht, d.h. es ist innerhalb dieser funktion nicht verfügbar.
      du kannst es global machen, oder (meiner meinung nach eine bessere wahl) - übergib das objekt per referenz an die funktion als parameter.
      trotzdem kommt es auf die restliche architektur an, was an dieser stelle sinnvoller ist.
      static methode gäbe es auch noch zur Auswahl ... aber das kommt wohl eher nicht in Frage

      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
      Wie man Fragen richtig stellt

      Kommentar


      • #4
        Das Object $db als global bekanntgeben. http://php.net/global

        Kommentar


        • #5
          mmmmm das mit global hatte ich schon probiert ... nur hatte ichs an der falschen stelle gesetzt ....
          the end comes faster than you think - you've already reached it!

          Kommentar

          Lädt...
          X