Wenn isset() auf Arrays ohne Angabe Schlüssel?
Habe ich gelernt, dass isset($array)
ist nicht erforderlich, wenn die überprüfung auf die Existenz von bestimmten Schlüssel, aber ich weiß auch, dass es einige Gründe zu prüfen, ohne Schlüssel, wenn $array
instanziiert wird.
Dies zum Beispiel:
foreach ($foo as $bar) {
echo $bar;
}
PHP Notice: Undefined variable: foo
PHP Warning: Invalid argument für foreach geliefert()
ist besser so:
if (isset($foo)) {
foreach ($foo as $bar) {
echo $bar;
}
}
Als ich arrays verwenden eine Menge, wenn der Umgang mit Daten und ich wollte Fragen, ob es gibt einige andere Fälle, wo ich überprüfen soll, ob ein ganzes array isset()
? Oder sollte ich nur stick auf die überprüfung jeder $array[$key]
dass ich nutzen werde, wenn bekannt?
Dies bezieht sich auf die Frage, ob es irgendwelche Vorteile oder Nachteile auf, dies zu tun:
if (isset($foo[0])) {
foreach ($foo as $bar) {
//noop
}
}
statt:
if (isset($foo)) {
foreach ($foo as $bar) {
//noop
}
}
Also, sollte ich jemals verwenden isset($array)
im Ort isset($array[$key])
wenn $key
bekannt ist?
InformationsquelleAutor Sampo Sarrala | 2012-04-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
In PHP,
isset()
ist eine spezielle form, nicht die Funktion; wenn Sie anrufenisset($ary[$index])
,$ary
sich nicht, müssen zuerst eingestellt werden. Auch mitE_STRICT
, der Anruf wird nicht eine Warnung generieren, weilisset
eigentlich nicht versuchen, auf$ary[$index]
; es geht so weit wie die Bestimmung, dass$ary
ist nicht gesetzt und zurückfalse
. So brauchen Sie nicht zu überprüfen, das array zuerst umisset
zu einem element.Ihre Frage zeigt, dass Sie das bereits wissen, und Fragen sich, ob es gibt einen Grund, warum Sie würde es trotzdem tun. Das einzige was ich mir denken kann, ist die Effizienz: wenn du gehst, um die überprüfung einer großen Anzahl von Schlüsseln für die Existenz in einem array, können Sie einige Arbeit spart, indem Sie zuerst erkennen, wenn das array selbst ist nicht festgelegt, und nur das überspringen einzelner Schlüssel prüft in diesem Fall.
InformationsquelleAutor Mark Reed
Wenn Sie wissen wollen, ob das array definiert ist, in alle, mit
isset($array)
.Wenn Sie wissen möchten, ob Sie einen bestimmten Schlüssel definiert ist, verwenden Sie
isset($array[$key])
.Zum Beispiel, das ist vollkommen gültig:
InformationsquelleAutor Amber