2015-04-02 3 views
1

Я задаю значения PHP в JavaScript следующим образомВ чем разница между следующими двумя в javascript?

var a = <?php echo 39; ?> 

но Javascript бросает следующее сообщение об ошибке «неперехваченным SyntaxError: Неожиданный токен НЕЗАКОННО». Когда я задаю значение PHP следующим образом, то я не получаю никакой проблемы

var a = "<?php echo 39; ?>"; 

Я думаю, что это PHP код работает на стороне сервера first.So в первом случае код PHP выполняются на стороне сервера первое то, что исполняемый код передаются в браузер browser.So должен видеть, что код, как (я думаю)

var a=39; 

, но вместо того, что он бросает error.Why это происходит?

+1

Вы уверены, что ошибка не соответствует этой переменной, и вам просто нужна точка с запятой после эха PHP? – adeneo

ответ

3

Вашего пример первого попадет в точке с запятой от конца переменного JavaScript назначения:

var a = <?php echo 39; ?>; //<-- missing semicolon 
+2

Это не пропало само по себе, не всегда нужны полуколоны, это зависит от того, что происходит после. – adeneo

+1

Вариант с запятой Arent в Javascript? – D4V1D

+0

Да, они @ D4V1D, но, как сказал adeneo, это зависит от того, что происходит после этой строки. –

0

Прежде всего, это лучшая практика, чтобы всегда заканчивает свои заявления с точкой с запятой. Но независимо от обсуждения в других ответах о том, где и когда вы должны иметь это, есть еще одна очень важная разница в двух приведенных вами примерах.

Пример 1:

var a = <?php echo 39; ?> 

Переменная a теперь является целым числом (без кавычек): http://en.wikipedia.org/wiki/Integer_%28computer_science%29

Пример 2:

var a = "<?php echo 39; ?>"; 

Переменная a теперь строка (котировки): http://en.wikipedia.org/wiki/String_%28computer_science%29

Я бы сказал, что разные типы переменных - это то, о чем вы должны знать. Особенно в Javascript!

Смежные вопросы