解释JavaScript和php代码


Explain javascript and php code

我从互联网上得到了这个代码,它工作正常

<script type="text/javascript">
var jvalue = 'this is javascript value';
<?php $abc = "<script>document.write(jvalue)</script>"?>   
</script>
<?php echo  $abc;?>

但是当我把</script>放在最后时,它会停止工作,请解释为什么它停止工作?

<script type="text/javascript">
var jvalue = 'this is javascript value';
<?php $abc = "<script>document.write(jvalue)</script>"?>   
<?php echo  $abc;?>
</script>

因为abc<script>document.write(jvalue)</script>的,你不能嵌套<script>标签。正如您的第二个示例所做的那样。你可以做到,

<script type="text/javascript">
    var jvalue = 'this is javascript value';
    <?php $abc = "document.write(jvalue)"?>   
    <?php echo  $abc;?>
</script>

你也可以做,

<?php $abc = "document.write(jvalue)"?>   
<script type="text/javascript">
    var jvalue = 'this is javascript value';
    <?php echo  $abc;?>
</script>

我认为这更符合原始示例。

你得到的代码将产生这样的html

<script type="text/javascript">
 var jvalue = 'this is javascript value';
</script>
<script>
  document.write(jvalue)
</script>

但是您更改的代码将产生如下

<script type="text/javascript">
 var jvalue = 'this is javascript value';
   <script>
     document.write(jvalue)
   </script>
</script>

不能在脚本标记内写入脚本标记。这就是为什么它会产生错误

语法不正确。根据 W3 HTML 规范,一个脚本标记不能位于另一个脚本标记内。出于将来的调试目的,请尝试将整个输出字符串通过验证检查 (validator.w3.org)。这将告知您有关编码错误的信息,并将帮助您了解可以采取行动的错误。

当 php 回显你的变量$abc时,结果大约为:

<script type="text/javascript">
    var jvalue = 'this is javascript value';
    <script>document.write(jvalue)</script> 
</script>

这是无效的,因为您不能将脚本标签放在另一个脚本标签(又名"嵌套")中。

$abc中删除<script>标签应该可以修复它。

以下方法将起作用:

<script type="text/javascript">
    var jvalue = 'this is javascript value';
    <?php $abc = "document.write(jvalue)" ?> 
    <?php echo $abc; ?> 
</script>

我不是PHP专家,但我希望如果代码中的其他地方不需要$abc,则可以将这两行PHP替换为:

<?php echo "document.write(jvalue)"; ?>