[OOP] Klassenproblem

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

  • [OOP] Klassenproblem

    Hi,

    also ich habe bisher folgende Klasse:

    [php]
    <?php
    class Dent{

    function Dent()
    {
    global $SERVERROOT;
    global $CLASSESROOT;

    global $dbHost;
    global $dbUser;
    global $dbPassword;
    global $dbName;

    require_once($CLASSESROOT."control/db/mysql4db.class.php");
    require_once($CLASSESROOT."design/libs/Smarty.class.php");

    $smarty = new Smarty; // Create template Object
    $db = new Mysql4db($create = "", $this->dbHost, $this->dbUser, $this->dbPassword, $this->dbName); // database object

    //$this->dbUser = $dbUser;


    $smarty->template_dir = $SERVERROOT.'smarty/templates/';
    $smarty->compile_dir = $SERVERROOT.'smarty/templates_c/';
    $smarty->config_dir = $SERVERRROT.'smarty/configs/';
    $smarty->cache_dir = $SERVERRROT.'smarty/cache/';
    }

    function writeHeader()
    {
    $smarty->assign();
    $smarty->display('header.tpl');
    }

    function writeTop()
    {
    $smarty->assign('aktuelles','Hier jibt et aktuelles');
    $smarty->display('top.tpl');
    }
    }

    ?>
    [php]

    In einer anderen Datei steht:
    [php]<?php
    include("config.inc.php");

    require_once($CLASSESROOT."dent.class.php");
    $dent = new Dent;
    $dent->writeTop();

    ?>
    PHP-Code:

    Nun kommt folgende Fehlermeldung
    :
    Fatal errorCall to a member function on a non-object in d:\dentona_new\classes\dent.class.php on line 38


    WARUM NUR
    ?

    Danke

    [edit]PHP-Tags sponsored by mortalan 
    Zuletzt geändert von MoRtAlAn; 01.08.2003, 12:20.

  • #2
    $SERVERRROT <-- hast du nen roten server, oder was wird das?
    h.a.n.d.
    Schmalle

    http://impressed.by
    http://blog.schmalenberger.it



    Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
    ... nur ohne :-)

    Kommentar


    • #3
      laut fehlermeldung versuchst du etwas als object anzusprechen, was kein objekt ist...
      liest du dir schmalles beitrag durch, könntest du den Fehler evtl. finden

      initialisieren der funktion wäre auch net (dent->dent()).
      Zuletzt geändert von MoRtAlAn; 01.08.2003, 12:27.

      Kommentar


      • #4
        Hi,

        Du musst vor dem $dent->writeTop(); die Funktion dent() aufrufen
        also z.B.

        $dent->dent();
        $dent->writeTop();

        armin

        Kommentar


        • #5
          Initialisierung ist unnötig !!!! Das macht pHP selbst


          Allerdings ist das Objekt $smarty nur im Kontext der Funktion / Methode dent bekannt.

          Entweder du änderst die ganze Klasse um auf $this->smarty, oder du setzt global $smarty überall wo du es benutzt.


          gruss

          rth
          H I L F E
          GD FreeType Antialising
          Gesuch PHP Entwicklungsumgebung
          ------------------------------------------
          Der Cmabrigde rael tset, sruf whoin du wlilst

          Kommentar

          Lädt...
          X