Variablen vorher definieren
MartinM
- php
1 Heizer-1 Christoph Schnauß0 HansKannsKaum-2 Christoph Schnauß0 Tom-1 HansKannsKaum-1 Tom
0 Heizer0 Heizer
-1 Christoph Schnauß
Hallo,
ich will am Anfang von jedem meiner PHP Scripts, zur besseren Übersicht alle Variablen nennen, und gegebenenfalls Werte zuweisen.
Wenn ich allerdings Variablen einfach aufzähle und keinen Wert zuweise, wirft mir PHP einen Fehler aus.
Ich weis (aus dem Informatikunterricht, lang lang ist's her), dass bei vielen Programmiersprachen Variablen erst definiert werden müssn, befor man sie verwendet werden können. So einen Befehl muss es doch auch in PHP geben.
Ein Beispiel:
<?
// MP = Menüpunkt
// ID = Identifikationsnummer
// Alle Variablen auf einen Blick
$intMPID = 2;
$intMaxAnzahlMP = 6;
$arrStyleMP;
$intCount;
//BEI DEN LETZTEN BEIDEN TRITT EIN FEHLER AUF
//Notice: Undefined variable: intCount in
//C:\iis\Inetpub\wwwroot\hauptseite.php on line 10
// for(Startwert; Bedingung; Zähler)
for ($intCount = 0; $intCount < $intMaxAnzahlMP; $intCount++)
{
$arrStyleMP = array($intCount => "normal");
if ($intCount == $intMPID)
{
$arrStyleMP = array ($intCount => "highlight");
}
echo $arrStyleMP[$intCount];
}
?>
Danke
Martin
Wenn ich allerdings Variablen einfach aufzähle und keinen Wert zuweise, wirft mir PHP einen Fehler aus.
Hi
Ich weiß nicht, ob es eine spezielle Funktion gibt, aber du könntest "null" benützen. Also:
$arrStyleMP = null;
Dann hat die Variable keinen Wert.
isset($arrStyleMP) gibt aber meines wisses dann auch entsprechen FALSE zurück.
Grüße
Heizer
morgens,
du könntest "null" benützen. Also:
$arrStyleMP = null;
Dann hat die Variable keinen Wert.
Doch, natürlich hat sie einen, nämlich den soeben zugewiesenen String "null".
Grüße aus Berlin
Christoph S.
morgens,
du könntest "null" benützen. Also:
$arrStyleMP = null;
Dann hat die Variable keinen Wert.Doch, natürlich hat sie einen, nämlich den soeben zugewiesenen String "null".
Grüße aus Berlin
Christoph S.
Hallo,
warum gibt dann
$temp = null;
echo "$temp: ".$temp."<br>";
echo "isset? ".isset($temp)."<br>";
:
isset?
aus?
freundliche Grüße nach Berlin
hi,
warum gibt dann
$temp = null;
echo "$temp: ".$temp."<br>";
echo "isset? ".isset($temp)."<br>";
:
isset?
aus?
Weil der Variablen $temp in diesem Fall ein neuer Wert zuzuweisen versucht wurde (übrigens auf fehlerhafte Weise). Ich habe die zugehörige Stelle des Manuals bereits angegeben - wer sich mit den Variablen bereits auf Kriegsfuß befindet, sollte meines Erachtens einen Kurs in der Volkshochschule belegen.
Grüße aus Berlin
Christoph S.
你好 Christoph,
warum gibt dann
$temp = null;
echo "$temp: ".$temp."<br>";
echo "isset? ".isset($temp)."<br>";
:
isset?
aus?Weil der Variablen $temp in diesem Fall ein neuer Wert zuzuweisen
versucht wurde (übrigens auf fehlerhafte Weise). Ich habe die zugehörige
Stelle des Manuals bereits angegeben - wer sich mit den Variablen
bereits auf Kriegsfuß befindet, sollte meines Erachtens einen Kurs in
der Volkshochschule belegen.
Dann schreib dich schonmal ein. So ein Humbug!
再见,
CK
Hello,
warum gibt dann
$temp = null;
hier wurde die Variable in die Tabelle aufgenommen und ihr NULL zugewiesen, also ein 'typloser' Bezeichner angelegt.
echo "$temp: ".$temp."<br>";
Hier wird $temp ersetzt gegen den Wert, da Du doppelte Anführungszeichen benutzt und das 'Parser-Steuerzeichen' $ einsetzt. Wenn Du willst, dass dort später Dollartemp: steht, dann musst Du das Steuerzeichen maskieren. Dann wird es als normales Literal benutzt.
echo "$temp: $temp<br>"; ## oder
echo '$temp: '.$temp.'<br>';
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo,
mir ist schon klar wie man Variablen ausgibt.
Wollte nur zeigen, dass $temp _nichts_ enthält.
Grüße, ...
Hello,
mir ist schon klar wie man Variablen ausgibt.
Wollte nur zeigen, dass $temp _nichts_ enthält.
Dann schreib das bitte auch so. MartinM möcht ja schließlioch auch zum Erfolg kommen und woher soll er wissen, was Du meinst, wenn Du nur die Hälfte hinschreibst?
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
morgens,
du könntest "null" benützen. Also:
$arrStyleMP = null;
Dann hat die Variable keinen Wert.Doch, natürlich hat sie einen, nämlich den soeben zugewiesenen String "null".
Frage: Wie kommst du auf einen String, wenn da keine Anführungszeichen stehen?
Zitat aus http://www.php.net/manual/de/language.types.null.php:
"Der spezielle Wert NULL steht dafür, dass eine Varaiable keinen Wert hat."
Soviel zu den Kriegsfüßen
Grüße
Heizer
Noch etwas zur Ursprungsfrage:
Sinnvoll ist "null" (svw. unset()) dann, wenn du sicher gehen möchtest, daß die Variable nicht gesetzt ist. Wenn du mit register_globals arbeiten solltest, ist es sehr empfehlenswert, alle Variablen, die irgendwann abgefragt werden, auf diese Art einzuführen.
Solltest du aber Variablen vergrüßern wollen (mit ".=" bei Strings bzw. "[]" bei Arrays), dann solltest du die Variable als Leeren String ("") bzw. leeres Array (array()) initialisieren, sonst gibt PHP eine E_NOTICE Meldung aus.
Schalte in der Entwicklung die Fehlermeldungen immer auf E_ALL (bzw. E_STRICT für PHP 5), dann schreibst du automatisch besseren Code und ersparst dir viel Fehlersuche.
Grüße
Heizer
morgens,
Ich weis (aus dem Informatikunterricht, lang lang ist's her), dass bei vielen Programmiersprachen Variablen erst definiert werden müssn
Was hat dich eigentlich gehindert, http://www.php.net/manual/de/language.variables.php nachzulesen?
Grüße aus Berlin
Christoph S.