Seite 1 von 1

php Globale variablen?

Verfasst: 29.09.2006 21:50
von Bit2_Gosu
Hallo !!

Um mein Problem zu erklären, vereinfache ich mal:

in der main.php sieht es so aus:

$baum=1;

include("gurgel.php");

schreiben();


in der gurgel.php so:

function schreiben() {

echo "$baum";

}

Leider gibt die main.php beim ausführen nicht "1" aus. Das liegt wohl daran, dass die variable baum im bereich der gurgel.php eben nicht 1 ist, sondern nur im bereich der main.php, oder?

dann hab ichs mal mit echo "global $baum"; probiert.
aber die syntax gibt es vermutlich gar net :-?

Wie kann ich das problem lösen? (ohne die function gleich in die main.php reinzuschreiben natürlich :wink: )

Verfasst: 29.09.2006 22:16
von OnFire
Hi,

in der gurgel.php ist $baum durchaus = 1, nicht jedoch in der Funktion, dazu müsstest du
main.php

Code: Alles auswählen

<?
$baum=1;

include("gurgel.php");

schreiben($baum); 

?>
gurgel.php

Code: Alles auswählen

<?
function schreiben($baum) {

echo "$baum";

} 
?>
oder

Code: Alles auswählen

<?
function schreiben($variable) {

echo "$variable";

} 
?>


Das liegt daran, dass in Funktionen nur auf per Parameter übergebene oder Superglobale Variablen zugegriffen werden kann. Mit dieser Kombination aus main.php und gurgel.php wird auch alles so ausgegeben wie du es erreichen willlst. Schau dir dazu mal das Php-Handbuch zum Thema Gültigkeitsbereich an.

main.php

Code: Alles auswählen

<?

$baum = 1;

include_once('gurgel.php');
?>
gurgel.php

Code: Alles auswählen

<?
echo $baum;
?>

Verfasst: 29.09.2006 22:38
von Bit2_Gosu
Ah super, vielen Dank. Mit den Parameter klappts :grin: !!!

Verfasst: 30.09.2006 00:44
von PhilippK
Man kann natürlich auch einfach das Keyword global verwenden - dann geht's auch:

Code: Alles auswählen

function schreiben()
{
  global $baum;

  echo $baum; 
}
Des weiteren sind die Anführungszeichen bei echo unnötig, da ja nur die Variable ausgegeben werden soll.

Siehe auch: http://de3.php.net/global

Gruß, Philipp