Includes und Code auslagern

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Includes und Code auslagern

    Hallo,

    Ich hab ne php Datei(1.php) die mittlerweile viel Code hat, nun würde ich gerne teile des codes auslagern der übersichtbarkeitshalber. Wenn ich jetzt eine php Datei(2.php) in der alle Funktionen deklariert sind mittels include einbinde, und die Funktion im 1.php aufrufe funktioniert es nicht.Kann ich den Code nicht mittels einer funktion ausführen so als würde er direkt im 1.php stehen ?

    Z.B diese.

    PHP Code:
    function auslesen()
    {
          
    $eintraege_auslesen "IrgendeineDatei.txt";
          
    $fp fopen($eintraege_auslesen,"r");
          
    $ArrayZeile=1;
          
    $ArrayNummer=1;
          
    $AnzahlEinträge=1;
         
          while (!
    feof($fp))  { 
          
             
    $array[$ArrayZeile][$ArrayNummer]= fgets($fp,1024);
             
    $AnzahlEinträge++;
                     if (
    $array[$ArrayZeile][$ArrayNummer]=="adfdd343\n"){ // 
                     
    $ArrayZeile++;
                     
    $ArrayNummer=0;
                    }
             
    $ArrayNummer++;
          }
          
    fclose($fp);

    Besten Dank

  • #2
    Doch das geht alles..
    Aber evtl solltest du die gewonnen Erkenntnisse mit return zurückgeben, damit nachfolgende Funktionen da was mit anfangen können...
    Wir werden alle sterben

    Comment


    • #3
      PHP Code:
      // 2.php
      function auslesen()
      {
         ... 
         while (!
      feof($fp))
         {
            ...
         }
         return (
      $array);
      }

      // 1.php
      include ('2.php');
      $ergebnis auslesen();
      print_r($ergebnis); 
      gruß
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Comment


      • #4
        Re: Includes und Code auslagern

        Original geschrieben von BrainBug2
        Kann ich den Code nicht mittels einer funktion ausführen so als würde er direkt im 1.php stehen ?
        warum funktioniert das nicht?

        2.php
        PHP Code:
        function test()
         {
           echo 
        'funktion: test aufgerufen';
         } 
        test.php
        PHP Code:
        require_once('2.php');
        test(); 

        Comment


        • #5
          warum funktioniert das nicht?
          weil es in diesem fall um den geltungsbereich von variablen geht.

          gruß
          peter
          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
          Meine Seite

          Comment


          • #6
            Original geschrieben von Kropff
            weil es in diesem fall um den geltungsbereich von variablen geht.
            wieso, BrainBug2 möchte funktionen in eine separate datei auslagern und includen - und genau das funktioniert.

            Comment


            • #7
              Original geschrieben von 3DMax
              wieso, BrainBug2 möchte funktionen in eine separate datei auslagern und includen - und genau das funktioniert.
              ja er hat aber keinen zugriff auf die lokale variable $array in der funktion auslesen, daher return.

              gruß
              peter
              Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
              Meine Seite

              Comment


              • #8
                Man könnte schon beim Aufruf $array als Referenz übergeben
                (um das evtl. recht kostspielige return zu sparen)

                Auf jeden Fall würde ich den Dateinamen an die Funktion übergeben...
                Wir werden alle sterben

                Comment


                • #9
                  um das evtl. recht kostspielige return zu sparen
                  wieso kostspielig?
                  OffTopic:
                  Auf jeden Fall würde ich den Dateinamen an die Funktion übergeben...

                  dann müßtest du die vorher als global definieren, um später drauf zuzugreifen.

                  gruß
                  peter
                  Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                  Meine Seite

                  Comment


                  • #10
                    1. Arbeitet PHP nicht standardmäßig mit "Übergabe per Value"...
                    Es geht Zeit für das Kopieren drauf
                    Und kurzfristig doppelter Speicherverbrauch für das Array...
                    (ich lasse mich gerne vom Gegenteil überzeugen)
                    Aber ich habe ja auch keine Ahnung wie groß diese Datei werden kann....
                    Bei kleineren Sachen schlägt das bestimmt nur geringfügig zu Buche..

                    2.
                    PHP Code:
                    $arry auslesen("IrgendeineDatei.txt"); 
                    Was gibts dagegen einzuwenden??
                    Last edited by combie; 05-01-2007, 21:46.
                    Wir werden alle sterben

                    Comment


                    • #11
                      Was gibts dagegen einzuwenden??
                      garnichts, siehe meinen ersten thread. dein vorschlag ist das selbe in grün, nur ein klein wenig anders
                      PHP Code:
                      // 2.php
                      function auslesen()
                      {
                         ... 
                         while (!
                      feof($fp))
                         {
                            ...
                         }
                         return (
                      $array);
                      }

                      // 1.php
                      include ('2.php');
                      $ergebnis auslesen();
                      print_r($ergebnis); 
                      gruß
                      peter
                      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                      Meine Seite

                      Comment


                      • #12
                        Original geschrieben von Kropff
                        ja er hat aber keinen zugriff auf die lokale variable $array in der funktion auslesen, daher return.
                        bahnhof
                        hat er auch nicht, wenn sich die funktion in der selben datei befinden würde. eine funktion hat nun mal einen eigenen namensraum.

                        Comment


                        • #13
                          Original geschrieben von 3DMax
                          bahnhof
                          hat er auch nicht, wenn sich die funktion in der selben datei befinden würde. eine funktion hat nun mal einen eigenen namensraum.
                          sag ich ja. das ist doch sein problem.

                          gruß
                          peter
                          Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                          Meine Seite

                          Comment


                          • #14
                            [Klugscheißer]Machs einfach so:

                            PHP Code:
                            function test()
                                 {
                                 
                            $function_var "Mein Wert";
                                 global 
                            $function_var;
                                 } 
                            [/Klugscheißer]

                            Comment


                            • #15
                              global <<--- igittigit
                              Die denkbar schlechteste Art, Variablen in den Namensraum der Funktion einzuschleusen..
                              bbrrr...
                              Wir werden alle sterben

                              Comment

                              Working...
                              X