Includes und Code auslagern

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

  • 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

    Kommentar


    • #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

      Kommentar


      • #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(); 

        Kommentar


        • #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

          Kommentar


          • #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.

            Kommentar


            • #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

              Kommentar


              • #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

                Kommentar


                • #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

                  Kommentar


                  • #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??
                    Zuletzt geändert von combie; 05.01.2007, 20:46.
                    Wir werden alle sterben

                    Kommentar


                    • #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

                      Kommentar


                      • #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.

                        Kommentar


                        • #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

                          Kommentar


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

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

                            Kommentar


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

                              Kommentar

                              Lädt...
                              X