2017-03-09 37 views
0

我在php $foo = get_field('foo') ?: null;中使用了三元運算符,但是我在javascript中尋找等價物。到目前爲止,我已經嘗試過var foo = <?php echo $foo; ?> || null;。但由於<?php echo $foo; ?>在這種情況下爲空/空,控制檯給我錯誤Uncaught SyntaxError: Unexpected token ||,因爲變量是var foo = || null;當變量爲空時,三元運算符在javascript中

是否有另一種在javascript中使用三元運算符的方法?

+0

'var foo =('<?php echo $ foo;?>')? '<?php echo $ foo; ?>':null;'沒有工作? – smarber

+0

你的JS應該工作,只是當'$ foo'爲'null'時從PHP輸出一個「falsy」值。 – evolutionxbox

+0

@smarber問題似乎是PHP代碼不輸出任何東西,所以JS仍然會出錯。 – evolutionxbox

回答

2

你的問題與三元運算符無關,但與PHP輸出到JavaScript。最安全的辦法是:

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

json_encode()功能可確保變量在JS能夠理解的形式呼應。

1

您需要從php返回一個falsy值。你的代碼幾乎是正確的。它只是錯過了周圍的報價。

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

這是因爲當$ foo是空的,這將是var foo = '' || null; 既然''是falsy在Javascript中,它會返回null。