Christian Walgenbach: 2x die selbe Datei includen

Hi,

wie kann ich 2x die selbe Datei in einer PHP-Datei includen, ohne dass eine Fehlermeldung kommt?

by Christian

  1. hi,

    wie kann ich 2x die selbe Datei in einer PHP-Datei includen, ohne dass eine Fehlermeldung kommt?

    in dem man zwei mal include "datei.xy" schreibt.

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. in dem man zwei mal include "datei.xy" schreibt.

      index.php

      <? include ("titel.php") ?>

      html quellcode

      <? include ("titel.php") ?>

      --------

      titel.php
      <?
      include("titelclass.php");

      $titelclass = new titelclass();

      $titelclass->titel( "Übersicht", "unserangebot/anatomiekurse/index.php");
      $titelclass->titel( "Infos", "unserangebot/anatomiekurse/infos/index.php");
      $titelclass->titel( "Erfahrungsberichte", "unserangebot/anatomiekurse/berichte/index.php");
      $titelclass->titelother2( "Bildergalerie", "unserangebot/anatomiekurse/gallery/index.php");
      $titelclass->titelother( "E-Mail", "Kontakt", "E-Mail", "kontakt/formular/index.php");

      $titelclass->build();
      ?>
      --------

      Folgende Fehlermeldung bekomme ich:

      Fatal error: Cannot redeclare class titelclass in F:\xampplite\htdocs\unserangebot\anatomiekurse\titelclass.php on line 4

      1. hallo..

        Folgende Fehlermeldung bekomme ich:

        Fatal error: Cannot redeclare class titelclass in F:\xampplite\htdocs\unserangebot\anatomiekurse\titelclass.php on line 4

        die fehlermeldung resultiert nicht aus dem zweimaligen includen, sondern eher daraus, dass dadurch ein und dasselbe object $titelclass = new titelclass(); zweimal deklariert wird -> was nicht geht. (das object wurde naemlich schon beim ersten include erstellt)

        grüsse,

        tufi

        1. Hallo tufan,

          die fehlermeldung resultiert nicht aus dem zweimaligen includen, sondern
          eher daraus, dass dadurch ein und dasselbe object $titelclass = new
          titelclass(); zweimal deklariert wird -> was nicht geht. (das object
          wurde naemlich schon beim ersten include erstellt)

          Nein, das ist falsch. Ich kann natuerlich einer Variable x mal eine Instanz
          von titleclass zuweisen. Woraus der Fehler wirklich resultiert (der
          mehrfachen Definition einer Klasse) hat wahsaga ja schon gesagt.

          Grüße,
           CK

          --
          Fatal! Ich kann kein Reserve-Offizier mehr sein!
          http://wwwtech.de/
      2. hi,

        Folgende Fehlermeldung bekomme ich:

        Fatal error: Cannot redeclare class titelclass in F:\xampplite\htdocs\unserangebot\anatomiekurse\titelclass.php on line 4

        na ja, das doppelte einbinden von funktionsdeklarationen ist natürlich zu unterlassen :-)

        entweder trennst du sauber nach funktions-/datendeklarationen und bereichen, wo ausgaben stattfinden (ich vermute mal, auf letzterem basiert dein wunsch, die datei zwei mal einzubinden?) - oder du nutzt beispielsweise function_exists(), um vor der deklaration der funktion zu prüfen, ob sie bereits existiert.
        ersteres ist natürlich idR. vorzuziehen.

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
        1. Hallo Wahsaga

          entweder trennst du sauber nach funktions-/datendeklarationen und bereichen, wo ausgaben stattfinden (ich vermute mal, auf letzterem basiert dein wunsch, die datei zwei mal einzubinden?)

          Kannst du mir einen Tipp geben, wie ich das realisieren kann?

          by Christian

          1. hi,

            entweder trennst du sauber nach funktions-/datendeklarationen und bereichen, wo ausgaben stattfinden (ich vermute mal, auf letzterem basiert dein wunsch, die datei zwei mal einzubinden?)
            Kannst du mir einen Tipp geben, wie ich das realisieren kann?

            es sollte doch in deinem falle schon ausreichen, wenn du das
            include("titelclass.php");
            aus der titel.php herausnimmst, und diese einbindung einfach davor machst.
            dann kannst du anschließend titel.php einbinden so oft es dir spaß macht ...

            gruß,
            wahsaga

            --
            "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
            1. Hallo,

              es sollte doch in deinem falle schon ausreichen, wenn du das
              include("titelclass.php");
              aus der titel.php herausnimmst, und diese einbindung einfach davor machst.
              dann kannst du anschließend titel.php einbinden so oft es dir spaß macht ...

              Das hat leider nicht geholfen. Das bringt keinen Vorteil.