13 Stimmen

Warum brauche ich die isset() Funktion in PHP?

Ich versuche den Unterschied zwischen diesem zu verstehen:

if (isset($_POST['Submit'])) { 
  //etwas tun
}

und

if ($_POST['Submit']) { 
  //etwas tun
}

Es scheint mir, dass wenn die $_POST['Submit'] Variable wahr ist, dann ist sie gesetzt. Warum würde ich in diesem Fall die isset() Funktion benötigen?

20voto

kennytm Punkte 488916

Weil

$a = array("x" => "0");

if ($a["x"])
  echo "Dieser Zweig wird nicht ausgeführt";

if (isset($a["x"]))
  echo "Aber dieser wird";

(Siehe auch http://hk.php.net/manual/en/function.isset.php and http://hk.php.net/manual/en/language.types.boolean.php#language.types.boolean.casting)

0 Stimmen

Sollte ich also einfach immer die isset-Funktion in solchen Fällen verwenden?

2 Stimmen

Der Versuch, auf $a["x"] zuzugreifen, wird auch dann eine E_Notice auslösen, wenn innerhalb von $a kein Schlüssel x definiert ist. Eine Überprüfung mit isset oder array_key_exists kann dies verhindern.

0 Stimmen

@Chris: Verwenden Sie immer isset, um das Vorhandensein einer bestimmten Variable zu überprüfen.

4voto

Kevin Punkte 12936

Isset gibt TRUE zurück, wenn es existiert und nicht NULL ist, sonst FALSE.

3voto

KJ Saxena Punkte 20750

Sie möchten im Grunde überprüfen, ob die $_POST[]-Variable überhaupt übermittelt wurde, unabhängig vom Wert. Wenn Sie isset() nicht verwenden, werden bestimmte Übermittlungen wie submit=0 fehlschlagen.

1voto

alex Punkte 457905

In deinem zweiten Beispiel gibt PHP eine Benachrichtigung aus (mit E_NOTICE oder strenger), wenn dieser Schlüssel nicht für $_POST festgelegt ist.

Siehe auch diese Frage auf Stack Overflow.

0voto

Gaurav Sharma Punkte 2828

Der Code

if($_POST['Submit'])
{
//Einige Code
}

wird nicht in WAMP funktionieren (funktioniert auf xampp)
auf WAMP musst du verwenden

if (isset($_POST['Submit'])) { 
  //mache etwas
}

Probier es aus. :)

1 Stimmen

Das klingt eher wie eine Standardfehlerbehandlungseinrichtung als ein Betriebssystem.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X