fastix®: csv - Dateihandhabung

Beitrag lesen

Moin!

Apropos überfahren... Das ist dann wieder ein "Umfeldproblem" -> sprich liegt am Programmierer! ;-)

Nein, nein. Das mit den Variablen macht schon Sinn.

Wichtig: Ich nehme in folgenden Beispiel KEINERLEI RÜCKSICHT auf Syntax oder Sprache - der Code sollte nirgendwo benutzt werden.

Stell Dir vor, Du schreibst ein Programm. Du schreibst es so, dass es den Wert einer Ware in Euro berechnet. Dieses verwendet (unklug) die Variable 'u' für irgendetwas:

$u='100 Stück Butter kosten ';  
$wert = 100;

jetzt kommt aber einer und will den Wert in USD haben.

Also schreibt einer eine Funktion, die den Kurs holt und den Wert umrechnet:

function eur2usd ($betrag) {  
    $u=getKurs('EUR', 'USD'); // dies sei eine weitere Funktion;  
    return ($betrag*$u).'$';  
}

Jetzt kann diese Funktion in einem weiteren Skript sein, welches mit use oder (in PHP) include eingebunden wird.

Steht jetzt irgendwo in Deinem Programm:

$wert=eur2usd($wert);  
print $u.$wert;

Dann bekommst Du, so lange Deine Variablen nicht "frei" also nicht "global" sind, wie erwartet:

"100 Stück Butter kosten 129.38$"

Sind Deine Variablen aber global (Du nennst es frei), dann bekommst Du

"1.29129.38$" als Ausgabe.

Grund ist der, dass der Programmierer des 2. Skriptes nicht weiß, welche Variablen Du verwendet hast. Deshalb ist es eine gute Idee, wenn er den gesamten Namensraum selbst nutzen kann, so langer nicht im main() herumschreibt. Auch derjenige, der das Hauptskript schreibt, kann sich darauf verlassen, dass durch Funktionen Dritter seine Variablen nicht zerstört oder überladen werden.

Ergo macht es Sinn, Variablen nur lokal gültig sein zu lassen.

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix