我正在努力改变一个大的,有点写得不好(但不是非常如此)的PHP网站,以使用一个存储函数的类,这些函数可以编写带有参数的标准页眉来改变像文本一样的东西。标题。旧版本在每个文件中使用复制和粘贴的HTML标头,例如:
<div class="left"><?php include("left.php"); ?></div>
包含的文件包含非回显HTML和普通PHP。这些包括似乎可以继续使用,但我只是不确定它们将如何工作,据我所知,包含文件只是直接替换include()方法。
更好的是:
- 重新编写包含的文件以回显所有标准HTML
- 在适当的情况下,将这些文件的内容简单地移动到我的新功能中(据我所知,它们不会在任何地方使用,除非它们出现在我的新功能中)
- 其他东西
感谢。
答案 0 :(得分:4)
如果include发生在调用文件中的函数内部,则调用文件中包含的所有代码都将表现为已在该函数内定义。因此,它将遵循该函数的可变范围。此规则的一个例外是魔术常量,在包含发生之前由解析器评估。
当包含文件时,解析将退出PHP模式并在目标文件的开头进入HTML模式,并在结束时再次恢复。因此,目标文件中应作为PHP代码执行的任何代码都必须包含在有效的PHP开始和结束标记中。
PHP不只是复制并粘贴包含文件中的代码来替换include语句,就像C / C ++那样。因此,您不必担心所包含文件中的<?php
和?>
标记会弄乱包含该文件的文件。
答案 1 :(得分:0)
如果你实际上没有解析任何变量,那么编写你的PHP来回显所有的HTML是有点低效的。也就是说,我似乎无法摆脱自己做的习惯。 :)
精心设计的页面将仅在必要时使用PHP,我认为您当前的包含方法可能是您网站的最佳方法。
如果您的网站的大部分内容突然变为动态生成,则可能值得重新审视此问题。