Chris (C): einmal gehts und einmal nicht

Beitrag lesen

Hallo,

if( "isset($_POST["name"])" ) $name = $_POST["name"];
else $name = "";

wenn man keinen else-Zweig oder eine prophylaktische Initialisierung für $name hat, kann man sich das allerdings schenken. Denn dann sit $name == false und $_POST["name"] auch.

Weiss jetzt auch nicht was Du meinst:
if ist true wenn das Feld name der Superglobalen $_POST gesetzt ist, dann soll dieser Wert der lokalen Variablen $name zugewiesen werden. Mit dieser wird dann im Script weitergearbeitet.
Wenn false gibt es eine initialisierte Variable $name ohne Inhalt.

Mhh, das glaub ich nicht. Die ist dann immer noch false.

probier mal folgendes aus:
-----------------------------------------
<?php  #### init.php ####

If (isset($name))
{
  echo "$name ist gesetzt<br />";
}
else
{
  echo "$name ist unbekannt<br />";
}

$name = $_GET["name"];

If (isset($name))
{
  echo "$name ist gesetzt<br />";
}
else
{
  echo "$name ist unbekannt<br />";
}

?>
--------------------------------------

und dann wiederhol das mit diesem Aufruf:

init.php?name=chris

Mich würde jetzt genauer interessieren was daran falsch sein soll, ich bin ja immer bereit zu lernen ;-)

Es ist einfach Unsinn, im Script alle Variablen ohne Notwendigkeit nochmals zu kopieren. Man kann gleich mit den "Superglobalen" weiterarbeiten. Das spart durchaus Speicherplatz. Anders ist das, wenn man die Originalwerte, die gepostet worden sind, später nochmals benötigt.

besser geeignet wäre also z.B das Konstrukt

if (!isset($_POST["name"])) $_POST["name"] = "";

Dann hat $_POST["name"] anschließend zwar immer noch keinen Wert, aber den passenden Typ. Voruasgesetzt der Name soll ein String sein
Ok, wenn if true ist, also die Superglobale ist nicht gesetzt, dann soll diese auch leer sein. Das macht IMHO keinen Sinn, da das

hat keinen Sinn *gg*

Script unten eine lokale Variable $name erwartet, die so erstens nicht initialisiert ist oder zweitens nicht den Wert vom gesendeten Formular zugewiesen bekommen hat. Oder wie, oder was? ;-)

Was das Script untern erwaret, kann man als Programmierer ja i.d.R. selber steuern. Und wenn man saubere funktionale Auflösungen baut oder sogar OOP nutzt, dann haben die Variablen innerhalb der Funktion ohnehin einen eigenen Gültigkeitsbeeich und damit dann sinnvollerweise auch einen kurzen sprechenden Namen.

Grüße

Chris (C)