Ankündigung

Einklappen
Keine Ankündigung bisher.

In Funktion auf Variablen außerhalb zugreifen

Einklappen

Neue Werbung 2019

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

  • In Funktion auf Variablen außerhalb zugreifen

    Hallo alle zusammen,

    ich stehe vor einem Problem, das wahrscheinlich schon viele genervt hat: Die Abfrage, ob eine Variable gesetzt ist. In Bezug auf POST und GET-Parameter habe ich das so gelöst:

    PHP-Code:
    function getvalue($param1$param2 "") {
      if (isset(
    $_POST[$param1])) {
        return 
    $_POST[$param1];
      } elseif (isset(
    $_GET[$param1])) {
        return 
    $_GET[$param1];
      } else {
        return 
    $param2;
      }

    So, nun hätte ich das ganze aber gerne auch für Variablen, da ich die Namen teilweise auch dynamisch erzeuge. Aber sowas:

    PHP-Code:
    function getvariable($param1$param2 "") {
      if (isset($
    $param1)) {
        return $
    $param1;
      } else {
        return 
    $param2;
      }

    ... tut es nicht, da ich denke, dass ich aus keiner Funktion nicht auf direkt in der Seite deklarierte Variablen zugreifen kann. Macht ja irgendwie auch Sinn. Hat da vielleicht jemand eine Idee?

    Viele Grüße
    Cartman

  • #2
    Lass mal was zur konkreten Anwendung blicken.

    Kommentar


    • #3
      Hallo nikosch,

      einen speziellen Punkt, wo ich das brauche, hab ich nicht. Könnte ich überall anwenden.

      Beispiel:
      PHP-Code:
      if ($heute == "Freitag"$laune "super";

      echo 
      $laune
      Heute ist aber Donnerstag. Also: MÖÖÖP, Fehler, Variable ist nicht vorhanden. Die Überprüfung mit
      PHP-Code:
      if (isset($laune)) echo $laune
      will ich mir mit der oben beschriebenen Funktion ersparen. Wie gesagt, für $_POST, $_GET und $_SESSION klappt das wunderbar. So erspare ich mir sogar diese elenden eckigen Klammern =)

      Viele Grüße
      Cartman

      Kommentar


      • #4
        Mit global kannst du Variablen in den Scope der Funktion holen.

        Kommentar


        • #5
          Find ich zwar für unsinnig aber wenn du es unbedingt so haben willst versuch es mal so:

          PHP-Code:
          function getvariable(&$param1$param2 "") {
            if (isset(
          $param1)) {
              return 
          $param1;
            } else {
              return 
          $param2;
            }

          Kommentar


          • #6
            Hallo, sorry für die späte Antwort. Ich werd die Funktion mal austesten, aber du hast natürlich recht, sehr sinnvoll ist die nicht. Die oben genannten Funktionen benutze ich dagegen durchgehend, da die Seite dann nicht sofort mit einem Fehler rausfliegt, wenn ein Parameter fehlt.

            Kommentar


            • #7
              Benutz doch $GLOBALS.

              Kommentar


              • #8
                Bitte kein $GLOBALS benutzen, auch kein global und auch keine zusammengesetzen Variablen. Für erstere existieren Parameter in Funktionen, sowie ein isset(), das vollkommen ausreicht. Für letzteres gibt es Arrays.

                Und hier noch was zum Nachlesen:
                PHP: rfc:ifsetor [PHP Wiki]

                Kommentar

                Lädt...
                X