jpehm: Variablen in verschiedenen Funktionen?

Hallo!

Ich habe folgendes Problem:
##########
<?php
function semmel() {
 $gebaeck = "Semmel";
}
function ausgabe(){
 semmel();
 echo $gebaeck;
}

ausgabe();

?>
##########
Gibt nichts aus.. anscheinend ist $gebaeck nicht bekannt.
Wie könnte ich das lösen?

Genauso hier:

Dateien: variablen.php, funktion.php

###variablen.php####
<?php
$haus="Schloss"
?>

###funtion.php####
<?php
require("variablen.php");
function ausgabe () {
 echo $haus;
}
ausgabe();
?>
Gibt ebenfalls nichts aus.

Danke
Lg Julian

  1. du musst die variablen mit global global verfügbar machen.

    gruss

  2. Hallo!

    Hallo.

    function semmel() {
    $gebaeck = "Semmel";
    }
    function ausgabe(){
    semmel();
    echo $gebaeck;
    }

    ausgabe();

    »»

    Gibt nichts aus.. anscheinend ist $gebaeck nicht bekannt.
    Wie könnte ich das lösen?

    Bedenke das Variablen einen Geltungsbereich haben, es gibt globale und lokale Variablen. Wenn du Variablen in Funktionen definierst, sind sie lokal, d.h. sie gelten nur in dieser Funktion. Das hat viele Vorteile!
    Du kannst globale Variablen innerhalb einer Funktion einbinden: mit "global". Allerdings ist das unschön.

    Die Frage ist warum du soviele verschiedene Funktionen brauchst. Beschäftige dich mit Objektorientiertem Programmieren. Dass sehe dann z.B. so aus:

      
    class gebaeck {  
       var $art;  
       function setArt ($art) {  
          $this->art = $art;  
       }  
       function getArt () {  
          return $this->art;  
       }  
    }  
      
    $semmel = new gebaeck();  
    $semmel->setArt('semmel');  
    echo $semmel->getArt();  
    
    
  3. Hello,

    Ich habe folgendes Problem:

    <?php
    function semmel() {
    $gebaeck = "Semmel";
    }
    function ausgabe(){
    semmel();
    echo $gebaeck;
    }

    ausgabe();

    ?>

    Es ist bedauerlich, dass die Begriffe heute so verwaschen werden.
    Alles drei sind keine Funktionen, sondern Prozeduren.

    Eine Funktion hat immer einen Rückgabewert, und sollte auch sonst nirgends Spuren hinterlassen. Dann wäre sie nämlich ein Objekt.

    <?php
    ------------------
      function semmel($gebaeck)
      {
        $semmel = $gebaeck;
        return $semmel;
      }
    ------------------
      function ausgabe()
      {
        $gebäck = semmel();
        return $gebaeck;
      }

    echo ausgabe();

    ?>

    So wäre es sauber aufgelöst, ohne dass es sinnvoll wäre ;-))

    Funktionen benötigen also nicht unbedingt ein Argument.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau