PHP与JS代码注释引发异常问题排查
这是预期行为,并非PHP或JS的Bug
原代码:
<script> //test <? //test ?> alert("test"); </script>
PHP解析后的页面源码:
<script> //test alert("test"); </script>
原因解析:
- 代码中的
<? //test ?>是PHP的短标签代码块,其中//test是PHP的单行注释。PHP在服务器端解析时,会直接处理这段PHP代码,不会输出任何内容,相当于把<? //test ?>整个移除。 - 原JS注释行
//test <? //test ?>经过PHP处理后,剩下//test,下一行的alert("test");会被合并到这行注释里,变成//test alert("test");,符合JS单行注释的规则,所以alert语句被注释,无法执行。 - 当移除
//test后,原代码只剩<? //test ?>,PHP解析后无输出,页面源码中就只剩独立的alert("test");,自然能正常执行。
这完全是PHP和JS各自语法规则的正常表现,属于预期行为,不是任何一方的Bug。
内容的提问来源于stack exchange,提问作者user2643679
相关产品推荐
相关产品推荐

