php 循环嵌套输出表格,循环中的?>为什么不会打断循环?

<table>
<?php
while(···){
?>             //这个“?>”为什么没有打断循环?
<tr>
<tb>···</tb>
<tb>···</tb>
···
</tr>
<?php
}
?>
</table>

我在php学习过程中经常遇到这种循环输出表格的格式,一直搞不明白的地方在:如果php解析器遇到?>会停止解析,那么循环中的?>为什么不会打断循环? 循环中的?>被解析器捕捉到了一次还是多次?

森林海
浏览 535回答 6
6回答

精慕HU

php解析规则而已

不负相思意

包含在 <?php // 代码 ?> 只是说明其中的代码要按照 php 解析

MMMHUHU

这就是PHP啊,打断了那PHP的这个优势去哪里找。这就是PHP的规则,没有为什么。php解析的整个文档,是整个文档中的所有<?php ?>。 关键是你认为应该打断么?为什么你这么认为? 循环中的?>被解析器捕捉到了一次还是多次?答:当然只有一次。你可以这么理解: 虽然我们看php文档是把php代码放<??>里面,把html等其他放在外面,但是php在解释时会首先把这份文档处理下,把<??>里的代码放在外面作为代码,把<??>外面的html等内容放在字符串常量里 并择机输出这些字符串。

动漫人物

我第一次听到php遇到说?>是停止解析的符号。<?php ?>或者<? ?>都是php的需要解析的部分,可以解析所有这些符号里面的代码块。

翻阅古今

不是停止解析了,而是停止识别为php代码,<?php ?>这玩意里面包含php代码,而这玩意外面就不识别为php代码了,所以外面写html代码就没毛病。就像你和html嵌套用的时候<?php ?>echo 1;外面的echo 1会和html一块当成html而不会报错。

largeQ

首先while循环,其中中断循环是括号里的表达式为false,其次PHP只有执行到脚本最后,或者碰到exit,die等函数才会结束运行,而不是碰到?>结束的。在纯PHP代码里最后一个?>一般都省略掉。
打开App,查看更多内容
随时随地看视频慕课网APP