2017-03-09 7 views
0

私はPHPで$foo = get_field('foo') ?: null;の三項演算子を使用しましたが、私はjavascriptで同等のものを探しています。これまで私はvar foo = <?php echo $foo; ?> || null;を試しました。しかし、この場合の<?php echo $foo; ?>はnull /空ですので、変数はvar foo = || null;なので、エラーUncaught SyntaxError: Unexpected token ||がコンソールに表示されます。変数が空のときにjavascriptの3進演算子

javascriptで三項演算子を使用する別の方法はありますか?

+0

'var foo =( '<?php echo $ foo;?>')? '<?php echo $ foo; ?> ':null; 'うまくいきませんでしたか? – smarber

+0

あなたはJSがうまくいくはずです。 '$ foo'が' null'のときにPHPから "偽の"値を出力するだけです。 – evolutionxbox

+0

@smarber問題は、PHPコードが何も出力しないので、JSはまだエラーがあるように思えます。 – evolutionxbox

答えて

2

問題は三項演算子とは関係ありませんが、PHPの出力はjavascriptになります。最も安全な方法は次のとおりです。

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

json_encode()関数は変数がJSが理解形でエコーされていることを確認します。

1

phpから偽の値を返す必要があります。あなたのコードはほぼ正しいです。その周りに引用符がないだけでした。

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

$ fooが空の場合、それはvar foo = '' || null; なり、''はJavascriptでfalsyているので、それはnullを返しますので、これがあります。

関連する問題