In PHP prüft man die Existenz einer Variablen mit der PHP-Methode isset();. Das ist sehr wichtig. Auf nicht existierende Variablen reagiert der PHP Interpreter und wirft ein warning ins Error-Log. Gerade bei der Ausfüllung von Formularen wird sehr gerne der eingegebene Wert wieder in den Value des Formularfeldes übergeben.
Nutz man kein PHP-Framework zur Unterstützung bei der Formulargenerierung muß man diesen Weg von Hand gehen. Hier bietet sich der Elvis-Operator an, welche die Schreibweise deutlich verkürzt und schon einige Zeit in PHP zur Verfügung stellt. Ein Javascript isset() equivalent gibt es in der Form leider von der Javascript Library selber nicht. Daher muß man ein Type-Mathing auf ‚undefined‘ ausführen.
Javascript isset() equivalent
Der folgende Code kann als Javascript isset() equivalent genutzt werden. Das wird auch in der Praxis so ausgeführt. Natürlich könnte man das auch noch zusätzlich als Funktion auslagern. Das wird aber in der Regel nicht gemacht.
1 2 3 |
if (typeof obj.foo != 'undefined') { // .. } |
Javascript hasOwnProperty
Ebenfalls hilfreich ist die Überprüfung, ob ein Object eine entsprechende Property also Attribute besitzt.
1 2 3 |
if (obj.hasOwnProperty('foo')) { //.. } |
Javascript Object Operator
Das kann man auch bei Operatoren anwenden.
1 2 3 |
if ('foo' in obj) { //.. } |
Javascript object method
Durch den nachfolgenden Code sieht man die Unterscheidung bei der Überprüfung nach einem Attribute und einer Methode in einem bestimmten Object.
1 2 3 4 5 |
var obj = { foo: 'bar'}; obj.hasOwnProperty('foo'); // true obj.hasOwnProperty('toString'); // false 'toString' in obj; // true |