PHP包含include和require_once,它们等同于JSP的include指令(<%@ include ..%>
)
JSP还有一个jsp:include,它只包含所包含文件的输出,将包含的文件保存在自己的servlet中。
我在PHP中寻找类似的东西,因此主页的变量和其他内容不会与包含文件的内容混淆。 是否存在?
答案 0 :(得分:1)
一个简单的解决方案是将文件包含在函数中,以防止文件的范围乱丢全局命名空间。
function jsp_include($file) {
include($file);
}
答案 1 :(得分:1)
以OOP方式进行此操作也应该以更整洁的方式完成。
class Servlet{
private $servletVar1 = "Some string";
private $servletVar2 = 2150;
public function html(){
echo "<p>Hello World!</p>";
}
}
include("servlet.php");
class MainPage{
private $title = "Page Title";
public function html(){
echo "<!DOCTYPE html>";
echo "<html>";
echo "<head>";
echo "<title>".$this->title."</title>";
echo "<head>";
echo "<body>";
$servlet = new Servlet();
$servlet->html();
echo "</body>";
echo "</html>";
}
}
$page = new MainPage();
$page->html();
答案 2 :(得分:1)
您可以随时执行file_get_contents()并在服务器上调用该PHP脚本的URL,然后回显结果。我会提醒你,尽管从安全的角度来看这是非常糟糕的。如果您的DNS记录发生了变化,那么有人可能真的搞乱了。最好通过使用OOP作为“thephpdeveloper”建议来完全避免这个问题。您也可以使用名称空间。
答案 3 :(得分:0)
实例化Runkit_Sandbox类会创建一个具有自己的作用域和程序堆栈的新线程。使用传递给构造函数的一组选项,此环境可能被限制为主解释器可以执行的操作的子集,并为执行用户提供的代码提供更安全的环境。
但我从未使用它,因此不能说它有多可靠。