Variablen in verschiedenen Funktionen?
jpehm
- php
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
du musst die variablen mit global global verfügbar machen.
gruss
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();
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.
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