Scripts modular aufbauen

global hash

Es kommt immer darauf an wo du die variablen benötigst.

Mal abgesehen ist es egal wo du dann global schreibt in der funktion
oder ausserhalb.
Da schlüsselwort global sorgt ja nur dafür das die Variablen im
Globalen hash registriert wird.
wenn du die variable nur in der funktion benutzt brauchst du
die dort auch nicht global deklarieren.

Im allgemeinen soll man so wenig wie möglich variablen globalisieren.
Wobei das bei PHP nicht so schwerwiegend ist, da die Variablen ja nur
auf das jeweilige script begrenzt sind, inklusiver der requires und includes.

:) mage
 
Man braucht das global schon noch ich habe nämlich in meiner Funktion was vergessen, sorry:
PHP:
$MyVar = 100;
function echoSomeVar($Var)
{
    global $MyVar;
    echo $MyVar.$Var;
}
Das heißt doch, dass die Variable $MyVar in der Funktion verfügbar ist. Wäre sie dann in einer anderen Funktion auch verfügbar, wo sie nicht per global definiert wird?
 
PHP:
<?php
$i = 50;


function test(){
	global $i;
	print $i;
}

function test2(){
	print $i;
}

test();
test2();
?>


ich bin gerade selbst etwas verwirrt muss ich sagen.
mir würde es viel logischer erscheinen wenn man 'global $I' gleich nach der festlegung der variable $i setzen würde, dann ist sie aber nicht global.
wie kann ich $i für alle functionen 'benutzbar' setzen ? (ohne define)
 
@godwich: Das Frage ich mich auch. Dein Beispiel läuft übrigens bei mir nicht. Da angeblich ein Parse error auftritt. Ich sehe aber nicht wo :confused:.
 
dann schon gleich

Es trägt schon zum guten programmierstil bei,
wenn man variablen vor den ersten Aufruf, am besten
gleich am Anfgang des skriptes global deklariert,
welche man wirklich global benötigt.

warum kannst du deine 2. Variable nicht auch als Paramter
übergeben ?
PHP:
function echoSomeVars($Var,$hiVar)
{
    echo $MyVar.$Var;
}


$MyVar = 100;
echoSomeVars('das ist ',$MyVar);

wenn du die Variable aber manipulieren möchtest.
dann müsstest du sie als refernce übergeben

PHP:
function echoSomeVars($Var,&$hiVar)

:)
mage
 
hmm also dass man global auch außerhalb von funktionen benutzen kann war mir bisher nicht bekannt. aber ich glaube das muss auch in der php.ini aktiviert sein. können diese variablen, die außerhalb einer funktion also global deklariert wurden dann auch innerhalb einer funktion verändert werden? das könnte dann nämlich fatale folgen haben, falls man einen namen in einer funktion intern versehentlich nochmal einsetzt und möglicherweise vergessen hat, dass diese variable an anderer stelle als global deklariert wurde. dann wird der alte wert überschrieben und man ist verwirrt ^^

ich benutze global immer innerhalb von funktionen - also wenn ich z.b. auf eine db zugreife, dann schreibe ich die table namen in einer config.php alle auf und wenn ich sie dann mal in einer funktion brauche dann halt
PHP:
function bla() {
 global $table_name;

 myqsl_query("SELECT * FROM $table_name");
};
dafür sind globale variablen doch sehr sinnvoll finde ich - einfach, um solche sachen zentral zu speichern und man kann sie später leicht mal ändern :D
 
Zurück