php Globale variablen?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Bit2_Gosu
Mitglied
Beiträge: 14
Registriert: 27.08.2006 19:03

php Globale variablen?

Beitrag 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: )
OnFire
Mitglied
Beiträge: 207
Registriert: 26.07.2006 18:59
Wohnort: Paderborn
Kontaktdaten:

Beitrag 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;
?>
Gruß
OnFire
Il y a plus des choses à changer dans l'avenir que dans le passé.
Bit2_Gosu
Mitglied
Beiträge: 14
Registriert: 27.08.2006 19:03

Beitrag von Bit2_Gosu »

Ah super, vielen Dank. Mit den Parameter klappts :grin: !!!
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag 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
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Antworten

Zurück zu „Coding & Technik“