PHP代码在PHP标记之外工作(<;?PHP…?>;)
我一直在读一本关于Zend framework的书,但有一部分HTML/PHP代码我搞不懂。它包含在MVC方法的视图部分:PHP代码在PHP标记之外工作(<;?PHP…?>;),php,Php,我一直在读一本关于Zend framework的书,但有一部分HTML/PHP代码我搞不懂。它包含在MVC方法的视图部分: <select name="genre"> <?php foreach ($this->genres as $genre) { ?> <option value="<?php echo $genre ?>"><?php echo $genre ?></option> <?php } ?&g
<select name="genre">
<?php foreach ($this->genres as $genre) { ?>
<option value="<?php echo $genre ?>"><?php echo $genre ?></option>
<?php } ?>
</select>
您可以想到?>
和3
之间的部分相当于
记住PHP代表“PHP:超文本预处理器”。简而言之,它的主要任务是生成HTML输出
PHP标记中的所有内容都在服务器端执行,并根据需要生成输出。这将添加到PHP忽略的所有内容中(PHP标记之外的任何内容,如您的案例中的
)
您可以将其视为PHP引擎在每次遇到PHP标记时都会打开或关闭
<?php //this gets processed ?>
This is sent as output, unchanged
<?php // this gets processed ?>
这是作为输出发送的,未更改
等等。PHP在这种情况下是一种不寻常的(模板化)语言。解析器实际上考虑了?>
和结束标记之间的所有内容,它只是开始输出它找到的任何内容(除了紧跟其后的换行符-请参阅指令分离)直到它碰到另一个开始标记,除非在条件语句的中间,在这种情况下,解释器将在决定跳过什么之前确定条件的结果。
这使得PHP可以用于很多事情。你不能仅仅用它创建动态HTML文件,例如,你还可以创建XML(尽管正确获取XML头有点困难),文本文件,CSS文件等,只要为该文件运行PHP解释器,它将以程序代码的形式执行
之间的所有内容,其余内容将按原样输出