Ziemlich einfache Frage wirklich, wie übergebe ich undefined vars zu Funktionen ohne E_NOTICE Fehler?
Wenn Sie undefinierte Variablen an Funktionen wie isset () übergeben, wird kein Fehler ausgelöst, senden Sie ihn jedoch an Ihre eigene Funktion, und Sie erhalten einen Hinweis: Undefinierter Offset: usw.
Ich habe mir ein paar Gründe dafür ausgedacht, dies heute zu wollen, aber meine aktuelle Funktion ist fast ein Klon von isset, außer dass es überprüft, ob any der Argumente gesetzt ist, anstatt alles wie isset ( a, b, c).
%Vor%Nun habe ich zum Beispiel ein riesiges 2d-Array von [x] [y], in das Werte zufällig eingefügt werden. Ich muss überprüfen, ob die randomisierten Co-ords etwas "nächstes" (x-1, y-1 bis x + 1, y + 1) usw. enthalten.
Ich möchte keine Schleife von 20.000.000 machen und jede Variable initialisieren. Ich möchte nur 9 vars senden und überprüfen, ob bereits eingestellt sind.
%Vor%Wie so.
Ich könnte einfach tunset (x) || isset (x) || isset (x), aber das sieht nicht sehr gut aus.
Gibt es eine Möglichkeit, nicht definierte Variablen an meine Funktion zu übergeben, ohne Fehler zu verursachen?
Nicht daran interessiert, die einfache Option zu nehmen;)
Danke fürs Lesen!
\ o
Update: 12. April 2012, 21:03 Sieht so aus, als gäbe es keine spezielle Funktion, die dies ermöglicht. Entweder passiere wie anyset (@ $ array [0], @ $ array [1]) usw., oder wickle einfach alles in tausend Issets ein:
%Vor%Hoffe das hilft jemand anderem in der Zukunft!
Sie haben drei Möglichkeiten:
Ein Beispiel für @ wäre:
%Vor%Sie sollten sich daran erinnern, dass diese Hinweise aus einem bestimmten Grund existieren. Ich vermeide Fehlerbehebungen. Es scheint Hacky für mich. Ich würde einfach alles in isetset () richtig einpacken. Es ist viel ausführlicher, aber auch meiner Meinung nach richtiger.
isset
ist etwas Besonderes, da es sich um ein PHP-Sprachkonstrukt und nicht um eine Funktion [1]
Wenn eine Variable nicht definiert ist, können Sie sie nicht wirklich übergeben, weil sie nicht definiert ist (daher die Warnung).
Wie in den Kommentaren angegeben, können Sie die Warnungen unterdrücken, indem Sie der Variable eine @
voranstellen, die verhindert, dass eine Warnung ausgegeben wird, wenn sie nicht gesetzt ist. Dann können Sie innerhalb der Funktion überprüfen, ob der Wert Null ist, oder versuchen% isset
zu verwenden, um zu sehen, ob es registriert ist.
Tags und Links php