2017-03-09 9 views
0

Ich habe den ternären Operator in PHP $foo = get_field('foo') ?: null; verwendet, aber ich bin auf der Suche nach einem Äquivalent in Javascript. Bisher habe ich das var foo = <?php echo $foo; ?> || null; versucht. Aber da <?php echo $foo; ?> in diesem Fall null/leer ist, gibt mir die Konsole den Fehler Uncaught SyntaxError: Unexpected token ||, da die Variable var foo = || null; ist.Ternär-Operator in Javascript, wenn die Variable leer ist

Gibt es eine andere Möglichkeit, ternäre Operatoren in Javascript zu verwenden?

+0

'var foo = ('')? " ': null; 'hat nicht funktioniert? – smarber

+0

Sie JS sollte funktionieren, geben Sie einfach einen "falsy" -Wert aus PHP, wenn "$ foo" ist "null". – evolutionxbox

+0

@smarber das Problem scheint zu sein, dass der PHP-Code nichts ausgibt, so wird der JS immer noch Fehler. – evolutionxbox

Antwort

2

Ihr Problem hat nichts mit ternären Operator zu tun, aber mit PHP-Ausgabe zu Javascript. Der sicherste Weg ist:

var foo = <?php echo json_encode($foo); ?> || null ; 

Die json_encode() Funktion stellt sicher, dass der Variable in einer Form Echo ist die JS versteht.

1

Sie müssen einen falschen Wert von PHP zurückgeben. Dein Code war fast korrekt. Es fehlten nur die Anführungszeichen.

var foo = '<?php echo $foo; ?>' || null; 
console.log('foo', foo); // null 

Dies liegt daran, wenn $ foo leer ist, wird es var foo = '' || null; sein und da '' falsy in Javascript ist, wird es null zurück.

Verwandte Themen