Problem beim arbeiten mit einer Klasse

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

  • Problem beim arbeiten mit einer Klasse

    Hallo Leute!

    Ich hab jetzt eine Klasse mit Interface geschrieben. Wenn ich jetzt ein Objekt instanzieren will funktioniert das leider nicht. Ich hab in den Konstruktor direkt am Anfang ein echo reingesetzt, um zu sehen ob der Interpreter da rein springt. Tut er nicht. Bin schon recht lange am suchen was die Fehlerquelle sein könnte, und bin total ratlos.

    Hier ist die Klasse samt Konstruktor:

    PHP-Code:
    class work_db extends data {
     public function 
    __construct($host,$username,$pw,$database,$database_typ="mysql") {
                echo 
    "bei der erstellung";
                echo 
    $host." ".$username." ".$pw." ".$database" ".$database_typ;
                
                if((
    $this->typ $database_typ) == "mysql")    {
                    
    $this->db = new mysqli($host,$username,$pw,$database);
                    
                    if(
    $this->db->connect_error)    {
                        die(
    "Fehler bei der Verbindung: ".$this->db->connect_error);
                    }
                }
                else    {    
    //noch nicht implementierte DB
                    
    return false;
                }
                
            }

    Und hier der Aufruf im Skript:
    PHP-Code:
                include_once '/lagerverwaltung/work_db.php';
                echo 
    "work included<br>versuche test anzulegen.";
                
    $test = new work_db("localhost","root","pw","neureifen");
                echo 
    "test erfolgreich angelegt"
    Ich sehe nie die ausgabe: bei der erstellung (vom Konstruktor)
    und nauch nie test erfolgreich angelegt.
    Das Skript wird anscheinend beim Versuch das Objekt zu instanzieren beendet...

    Ich hoffe ihr könnt mir weiterhelfen...

    so long
    shimu
    Zuletzt geändert von Shikamaru; 01.06.2010, 12:54.

  • #2
    Und die Fehlermeldung? Abgesehen von der Tatsache, dass man Interfaces nicht erweitert sondern implementiert … (implements statt extends).
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Hallo,

      wenn du mit PHP 4 arbeitest, muss der Konstruktor wie die Klasse heißen.

      Wo wird die Klasse data geladen? Ist dein Error-Reporting aufgedreht?

      Gruß,

      Amica
      [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
      Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
      Super, danke!
      [/COLOR]

      Kommentar


      • #4
        Das mit der Fehlermeldung ist ein großes Problem. Ich bekom gar nichts zu sehen. Kein Warning, keine Errormeldung,...
        Ich arbeite mit PHP5, und da muss doch der Konstruktor __construtct heißen oder?

        Was muss ich ändern damit ich das Errorreporting aufdrehen kann?

        btw danke für den Tipp mit dem Interface. Ich wollte zuerst eine abstrakte Klasse verwenden, und hab mich dann dazu entschieden ein Interface zu machen. Dabei hab ich wohl vergessen das extends zu ändern...

        Kommentar


        • #5
          Um das Error Reporting aufzudrehen einfach an den Script anfang folgendes schreiben:
          PHP-Code:
          error_reporting(E_ALL);
          ini_set('display_errors'1); 

          Kommentar

          Lädt...
          X