PHP8中HTML内if语句输出异常问题及解决方法咨询
问题解决方法
你的问题根源在于PHP短标签<?的解析差异:PHP8对短标签的兼容性处理更严格,或是你的PHP8环境禁用了short_open_tag配置项,导致<body>内的<?未被识别为PHP起始标记,部分代码被当作普通HTML直接输出;而PHP7.4默认开启短标签,所以能正常解析。
要让脚本在PHP8中正常工作,推荐两种处理方式:
替换短标签为完整标签(推荐)
将<body>里的<?改成标准的<?php标签,修改后的代码如下:<?php error_reporting(E_ALL); ini_set('display_errors', 1); ?> <HTML> <HEAD> <TITLE>test</TITLE> <body> <?php $foo=1; if($foo==0){ echo '<div class="main_container">'; echo "no"; echo'</div>'; } ?> </body> </html>这种方式不依赖配置,兼容性最好,是PHP开发的规范做法。
开启短标签配置(不推荐)
编辑PHP8的php.ini文件,将short_open_tag设置为On,保存后重启PHP服务。不过依赖短标签会降低代码的跨环境兼容性,不建议使用。
内容的提问来源于stack exchange,提问作者Joey
相关产品推荐
相关产品推荐

