Sollten Sie beim Deaktivieren einer Variablen in PHP oder bei bewährten Methoden beim Deaktivieren einer Variablen in PHP prüfen, ob sie zuerst vorhanden ist (in diesem Fall nicht immer vorhanden) und ob sie deaktiviert oder nur deaktiviert wurde?
<?PHP
if (isset($_SESSION['signup_errors'])){
unset($_SESSION['signup_errors']);
}
// OR
unset($_SESSION['signup_errors']);
?>
NOT
bedienenisset
. Schau dir meine Antwort an. Ich habe Tests durchgeführt, um den Geschwindigkeitsunterschied zu ermitteln.Antworten:
Deaktivieren Sie es einfach, wenn es nicht existiert, wird nichts getan.
quelle
if set
möglicherweise ein besseres Indizierungsschema aufweist. (Nur ein Beispiel, das vorherige ist wahrscheinlich Schuster und beide Ansätze verwenden die gleiche Datenprüfmethode).isset
Verse nicht verwendet werdenisset
.Aus dem PHP-Handbuch :
quelle
Die Verwendung
unset
einer undefinierten Variablen verursacht keine Fehler (es sei denn, die Variable ist der Index eines Arrays (oder Objekts), das nicht vorhanden ist).Daher müssen Sie nur berücksichtigen, was am effizientesten ist. Es ist effizienter, nicht mit 'isset' zu testen, wie mein Test zeigen wird.
Prüfung:
Ergebnisse:
Function A time = 1.0307259559631
Function B time = 0.72514510154724
Function C time = 1.3804969787598
Function D time = 0.86475610733032
Fazit:
Die Verwendung ist immer weniger effizient
isset
, ganz zu schweigen von der geringen zusätzlichen Zeit, die zum Schreiben benötigt wird. Es ist schneller,unset
eine undefinierte Variable zu versuchen, als zu prüfen, ob dies möglich istunset
.quelle
Wenn Sie eine Variable deaktivieren möchten, können Sie sie einfach verwenden
unset
Die Überprüfung auf ihre Existenz hat keinen Vorteil, wenn versucht wird, eine Variable zu deaktivieren.
Wenn die Variable ein Array ist und Sie ein Element deaktivieren möchten, müssen Sie sicherstellen, dass das übergeordnete Element zuerst vorhanden ist. Dies gilt auch für Objekteigenschaften.
Dies lässt sich leicht lösen, indem Sie das
unset
in einenif(isset($var)){ ... }
Block einwickeln .Der Grund, warum wir nur die Variable ( übergeordnet ) überprüfen, ist einfach, dass wir die Eigenschaft / das Element nicht überprüfen müssen und dies viel langsamer zu schreiben und zu berechnen wäre, da dies eine zusätzliche Prüfung hinzufügen würde.
.vs
Dies ist selbstverständlich, aber es ist auch wichtig, dass Sie
type
die Variable kennen, wenn Sie ein Element oder eine Eigenschaft abrufen, festlegen und deaktivieren. Bei Verwendung der falschen Syntax wird ein Fehler ausgegeben.Dies gilt auch, wenn versucht wird, den Wert eines mehrdimensionalen Arrays oder Objekts zu deaktivieren. Sie müssen sicherstellen, dass der übergeordnete Schlüssel / Name vorhanden ist.
Beim Umgang mit Objekten gibt es noch etwas zu beachten, und das ist Sichtbarkeit.
Nur weil es existiert, heißt das nicht, dass Sie die Berechtigung haben, es zu ändern.
quelle
unset
die Eigenschaft eines nicht vorhandenen übergeordneten Objekts haben. Wenn Sie jedoch einen Schlüssel in einem nicht vorhandenen Array in PHP8 verunsichern, wird nicht nur ein Hinweis, sondern auch eine Warnung ausgegeben (Änderungen vorbehalten).Überprüfen Sie diesen Link https://3v4l.org/hPAto
Das Online-Tool zeigt die Codekompatibilität für verschiedene Versionen von PHP
Nach diesem Tool der Code
würde für PHP> = 5.4.0 funktionieren, ohne dass Sie irgendwelche Hinweise / Warnungen / Fehler erhalten.
quelle