• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit geerbten Klassen

Mars@Gera

Mitglied
Hallo,

ich habe ein Problem mit meinen Klassen.
Folgendes Szenario:
PHP:
class a{
   private $blah;
   public function getBlah(){
     return $this->blah;
   }
}

class b extends a{
  private $dir = "dir/";
  public function __construct(){
    parent::construct();
  }

  public function loadblah(){
     include $this->dir . $this->getBlah() . '/modul.php';
     $string = $this->getBlah();
     $modul = new $string();
     $modul->init();
  }
}

in einem anderen Ordner (was in $this->getBlah() steht)
PHP:
class C extends b{
   public function init(){
      echo "1";
   }
}

normalerweise sollte er 1 ausgeben, stattdessen kommt die Meldung Cannot redeclare class impressum in

Weiss jemand einen Rat ... weiss nicht mehr weiter

mfg Marcel
 
Werbung:
Vermutlich inkludierst du die Datei, in der impressum definiert wird, mehr als einmal. Das besagt jedenfalls die Fehlermeldung.

Rufst du loadBlah mehrfach auf?
 
Werbung:
Denke, das Problem ist/war eher, dass include nunmal immer wieder die nachgefragt Datei einbindet. Bei den *_once-Varianten der Befehle (ich zähle mal require dazu), ist das anders.

test.php:

PHP:
<p>test.php eingebunden</p>

Dieser Code durchläuft den Inhalt mehrfach:

PHP:
<?php

include 'test.php';
include 'test.php';
include 'test.php';

Dieser nicht:


PHP:
<?php

include_once 'test.php';
include_once 'test.php';
include_once 'test.php';

Für den hier vorliegenden Zweck ist in der Regel require_once die beste Lösung.
 
Zurück
Oben