<?php
$javascript = <<<EOT
<script type="text/javascript">
function test () {
return 'test test test \n test test test';
}
</script>
EOT;
echo $javascript;
?>
\ N выше анализируется PHP как новая строка, генерирует исходный код HTML, как показано ниже
return 'test test test
test test test';
и это приводит к синтаксической ошибке JavaScript: неопределенный строковый литерал.
У меня есть большой кусок кода JavaScript, поэтому я не хочу оборачивать их как
$javascript = "<script type=\"text/javascript\">\nfunction test()...\n";
и на самом деле код JavaScript не напрямую выводится на страницу, он передается другой функции, поэтому мне нужна переменная PHP.
Итак, как я могу определить переменную PHP, которая содержит большой кусок кода JavaScript без проблем?
Есть ли способ как if / endif?
<?php if (condition): ?>
html code...
<?php endif ?>
Вариант 1: использовать NOWDOC, что для HEREDOCs как '
одинарные кавычки "
двойные кавычки.
$javascript = <<<'EOT'
...\n...
EOT;
Вариант 2: избежать специального символа:
$javascript = <<<EOT
...\\n...
EOT;
Мой код:
$javascript = <<<'EOT'
<script type="text/javascript">
$demo = 'test';
alert($demo);
</script>
EOT;
echo $javascript;
Если я использую ‘EOT’, тогда мой код в javascript работает хорошо, но я использую EOT, тогда мой код поймет, что $ dem является переменной в PHP