Array soll auch in über require eingebundenem Script zur Verfügung stehen

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

  • Array soll auch in über require eingebundenem Script zur Verfügung stehen

    Hallo,

    Angenommen ich habe folgendes php-Script hauptseite.php:
    Code:
    <?php
    require_once('blub.php');
    $obst = array(...);
    $saft = pressmaschine();
    die ($saft);
    ?>
    blub.php sähe so aus:
    Code:
    <?php
    function pressmaschine () {
    ...
    $xy = $obst[0]*$obst[1];
    return $xy;
    }
    ?>
    Wie bekomme ich es hin, dass das Array $obst auch in der function zur Verfügung steht, ohne dass ich es immer als Argument übergeben muss?

    Danke schon mal!
    cargu

  • #2
    Re: Array soll auch in über require eingebundenem Script zur Verfügung stehen

    Original geschrieben von cargu
    Wie bekomme ich es hin, dass das Array $obst auch in der function zur Verfügung steht, ohne dass ich es immer als Argument übergeben muss?
    Genau so, wie du es auch hinbekommen würdest, wenn require nicht mit im Spiel wäre - das hat nämlich mit der ganzen Sache nicht das geringste zu tun.

    http://www.php.net/manual/de/languag...bles.scope.php
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Code:
      require_once('blub.php');
      $obst = array(...);
      mit dieser Codereihenfolge gar nicht. Du müsstest $obst vor dem require initialisieren und in der Funktion mit global der Funktion bekanntmachen.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        Danke!

        Kommentar


        • #5
          global ist unnötig - so führt man register globals wieder über die Hintertür ein.

          Einer Funktion kann man Werte als Parameter übergeben und man kann auch Arrays wieder "returnen".

          edit:

          und wenns denn unbedingt sein muß: $_GLOBALS['var']

          Kommentar


          • #6
            Ich find global schon praktisch, denn sonst müsste ich bei jedem Aufruf der Funktion 2 Arrays als Parameter übergeben und das ist ja schon viel mehr Schreibarbeit, weil die Function ständig gebraucht wird. Trotzdem danke!

            Kommentar


            • #7
              Ich find global schon praktisch, denn sonst müsste ich bei jedem Aufruf der Funktion 2 Arrays als Parameter übergeben
              dann hast du aber Koala's Tipp nicht verstanden...

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Doch, doch, die Function soll ja überhaupt kein Array zurückgeben, aber braucht zum Arbeiten die Informationen aus 2 Arrays (in der ursprünglichen Fragestellung hab ich, um das Ganze zu entkomplizieren, nur eins erwähnt).

                Kommentar


                • #9
                  Und wo gibt dieser Tipp
                  und wenns denn unbedingt sein muß: $_GLOBALS['var']
                  denn einen Rückgabewert

                  Gruss

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    Original geschrieben von cargu
                    ... denn sonst müsste ich bei jedem Aufruf der Funktion 2 Arrays als Parameter übergeben und das ist ja schon viel mehr Schreibarbeit, weil die Function ständig gebraucht wird.
                    das soll vor allen dingen kein argument sein, um globale variablen zu benutzen. das ist viel mehr ein fall von "pebcak".

                    Kommentar


                    • #11
                      Leute, bleibt freundlich und gelassen. Ich habe euch nichts getan und will mich nicht in euren Stil oder etwaige Befehlsvermeidungsdogmen einmischen. Wenn ihr der Ansicht seid, dass ihr global lieber vermeiden möchtet, tut das einfach; mich geht das nichts an. Ein pebcak existiert bei mir übrigens nicht, danke aber für die hilfreiche Unterstellung... Die beiden ersten Antworten, also die Postings von wahsaga und jahlives haben meine Frage doch schon völlig beantwortet. Alles andere schoss doch übers Ziel hinaus und war niemandem zuträglich. In dem Sinne: Danke für die gute Anfangsberatung und lasst uns jetzt hier aufhören.

                      Kommentar

                      Lädt...
                      X