怎么影响其外的html代码输出?

mingzi520 2008-11-25 10:41:23
有人说这个问题根本没必要讨论,但还是希望给小弟解释下吧,代码如下:

<?php //下面的代码运行时输出"else外的文字" ?>
<?php
if($a>1){
?>
if外的文字
<?php
} else{
?>
else外的文字
<?php }?>


PHP指抽出<?php?>内的代码加以解释执行,为什么这个If会影响其外的HTML输出?
谢谢了

...全文
89 点赞 收藏 9
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mingzi520 2008-11-25
[Quote=引用 7 楼 xiayong404 的回复:]
我想服务器端的语言一定会优先于,htm语句的吧,当if($a>1) 便会执行{}内的html代码,否则不执行。我不知道你明白不明白了。反正一点,服务端的语言优先级高。
[/Quote]
文档上说:解释器不对其做任何处理,而特殊标记内文件将作为 PHP 代码被解释器分析执行。该运行机制将允许您在 HTML 中嵌入 PHP 代码:PHP 标记外的内容将被完全独立开,不做任何处理,而内部的将作为 PHP 代码解析。
回复
mingzi520 2008-11-25
[Quote=引用 6 楼 dada20042030 的回复:]
我感觉你没明白我的意思,你也没明白一个网页是怎么执行的~
打开PHP手册,查找-章 10. 基本语法
里面有你要的答案~


[/Quote]
我看了文档了,解释如下:PHP 代码块结束标记奖自动包含最近的一个结尾的新行(如果存在的话)。而且,结束标记自动隐含一个分号; 您不需要为 PHP 代码块的最后行追加一个分号。
而且上面也有个和这代码一模一样的例子;
但对“最近的一个结尾的新行“不明白,太该是?>后所有的html吧,然后在其后加上一个分号;
回复
xiayong404 2008-11-25
我想服务器端的语言一定会优先于,htm语句的吧,当if($a>1) 便会执行{}内的html代码,否则不执行。我不知道你明白不明白了。反正一点,服务端的语言优先级高。
回复
剑心永远OK 2008-11-25
我感觉你没明白我的意思,你也没明白一个网页是怎么执行的~
打开PHP手册,查找-章 10. 基本语法
里面有你要的答案~

回复
mingzi520 2008-11-25
[Quote=引用 2 楼 dada20042030 的回复:]
<?php
    if($a>1){
?>
if外的文字
<?php
} else{
?>
else外的文字
<?php }?>
上例可正常工作,因为当 PHP 碰到结束标记 ?> 时,就简单地将其后的内容原样输出直到碰到下一个开始标记为止。
[/Quote]
dada20042030 你没有明白我的意思
PHP指抽出 <?php?>内的代码加以解释执行,为什么这个If会影响其外的HTML输出?
回复
mingzi520 2008-11-25
PHP优先级是高于html & js 但是按照常理,她应该只执行<?php?>中的内容,应该不影响现有的静态Html吧,而且也没有权力影响吧。
回复
newbieeee 2008-11-25
简单说PHP是服务器端的技术,可以控制HTML的生成。这个例子里客户端查看源码是看不到“if外的语句”这一部分的。
回复
剑心永远OK 2008-11-25
<?php
if($a>1){
?>
if外的文字
<?php
} else{
?>
else外的文字
<?php }?>
上例可正常工作,因为当 PHP 碰到结束标记 ?> 时,就简单地将其后的内容原样输出直到碰到下一个开始标记为止。
回复
程序猿之殇 2008-11-25
PHP解释执行的不假,但是它的优先级是高于html和js的,也就是说,PHP是首先被解释执行.
你这段代码等同于

<?php
if($a>1)
{
echo "if外的文字";
}
else
{
echo "else外的文字";
?>

也就是说,虽然你把它当做html,但是这段html是处于if else的包括范围之内的,所以要受影响.

这个我觉得如果你以前PHP和html混用过的话,就不会有此问题了.
回复
相关推荐
发帖
基础编程
创建于2007-09-28

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
申请成为版主
帖子事件
创建了帖子
2008-11-25 10:41
社区公告
暂无公告