所谓混合编程,实际上是php 文件输出html 内容的过程, 看起来像html 文件包含php 语句,但实际上是php 文件输出html 内容.
结合一个小例子, 体会一下php 是如何把非php 语句原样输出或不输出的. cat 3.php, 有如下代码显示.
注意: 文件后缀必须是.php文件,不能是.html文件, 因为php文件可以输出html内容, 而html文件却不能包含php 语言, 这是因为html是firefox 等前端直接解析的文件,就是说firefox 并不认识php语句, 而php文件 是后端apach 等服务器调用php 解释器输出html 内容的.
<html>
<?php $a=3; $b=5; if($a>$b) { ?>
<h2>Hello</h2>
<?php } else { ?>
<h3>World</h3>
<?php } ?>
</html>
添加了注释的源代码, 方便理解:
<html> <!-- 不被php 语句包围,相当于echo语句, 原样输出. -->
<?php
$a=3;
$b=5;
if($a>$b)
{ ?> // php语句忽然嘎然而止, 实际上是if块开始,可以理解为没有停止,后面继续是echo 语句块. 解释器也是这么看待的.
<h2>Hello</h2> <!-- echo 语句块, 不过能不能在html中输出,要看语句块的判断条件 -->
<?php // 又继续php 语句
} // if 块结束
else { // else 块开始
?> <!-- php语句又结束, 说明这一块只是包含了一些语法结构.
<h3>World</h3> <!-- echo 语句块, 不过能不能在html中输出,要看语句块的判断条件 -->
<?php } ?> <!-- 语法结构, }此处代表else块结尾 -->
</html>
运行, 有如下结果:
$ php 3.php
<html>
<h3>World</h3>
</html>
php 自顶向下解释执行代码, 控制这输出或不输出对应的行. 如此而已!
第一行 <html> 默认输出.
第二行, 付给变量,并比较变量,比较为假,跳过大括号部分,执行 else 块, 为第5行
第5行, 直接输出,
第7行,直接输出.
php 的一个重要功能是输出html 文件, 要不怎么叫php 呢 "php is hyper text preprocess" php 是超文本预处理语言.
php 另一个重要功能是访问数据库.