2017-03-09 16 views
0

PHP에서 $foo = get_field('foo') ?: null;의 삼항 연산자를 사용했지만 자바 스크립트에서 해당 항목을 찾고 있습니다. 지금까지 나는 var foo = <?php echo $foo; ?> || null;을 시도했습니다. 그러나이 경우 <?php echo $foo; ?>이 null/empty이므로 변수가 var foo = || null;이므로 콘솔에서 오류 Uncaught SyntaxError: Unexpected token ||을 제공합니다.변수가 비어있을 때 자바 스크립트의 삼항 연산자

자바 스크립트에서 삼항 연산자를 사용하는 다른 방법이 있습니까?

+0

'var 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; 되며 '' 자바 스크립트에 falsy 때문에, 그것은 null을 반환하기 때문입니다.