为何<?php与<?=输出结果不同?PHP新手技术求助
PHP中<?=和<?php的差异问题解析
问题原因
你对<?=的理解有偏差:它不是<?php的简写,而是<?php echo的简写,核心区别在于自动输出内容:
- 当你写
<?php $article["id"]; ?>时,PHP只是执行了获取$article["id"]值的操作,但没有把这个值输出到HTML页面里,所以最终生成的URL中id=后面是空的。 - 而
<?= $article["id"]; ?>等价于<?php echo $article["id"]; ?>,会自动把变量的值输出到页面,所以能得到正确的id=1。
是否应该使用<?=
当然可以用,理由如下:
- 这是PHP官方认可的标准语法,从PHP 5.4版本开始默认启用,主流服务器环境都支持。
- 在HTML模板中输出变量时,
<?=比完整的<?php echo ... ?>更简洁,代码可读性更高,是这类场景下的常用写法。 - 如果你使用的是极旧的PHP版本(低于5.4),可能需要在
php.ini里开启short_open_tag配置,但现在几乎不需要考虑这种情况。
内容的提问来源于stack exchange,提问作者Artun Gönül
相关产品推荐
相关产品推荐

