我在 PHP 中有一个与函数参数及其范围有关的问题。
我正在构建一个自己的小模板系统,目前我一直在使用:
try {
$ret = include("file.php");
if(!$ret) {
throw new Exception();
}
// Go on here...
}
catch(Exception $e) {
// error handling
}
在 mainfile 中大约 3-4 次index.php
。此代码首先包含所需的文件(由 URL 中的 GET 参数设置),尝试包含它,如果失败,它会处理所有错误。由于这在 index.php 中使用了 3-4 次,我想用它制作一个函数,这样我就可以轻松调用$Template->LoadFile("filename.php");
,这个函数为我处理所有事情:包括执行代码和错误处理。
我想并不难,但是这样做时我会收到很多错误消息,因为包含的文件执行所需的变量仅在index.php
(之前执行代码的位置)范围内可用,而不在LoadFile()
功能。我现在能做什么?
- 恢复一切,然后愚蠢地重复使用上面的代码 3-4 次?
- 将所有需要的变量添加
LoadFile()
为参数,以便通过 using$Template->LoadFile($file,$vars);
$vars
可用于LoadFile()
包含的文件?通过这样做,在某些情况下给定的参数会很大。例如,如果我添加一个自己的板,$vars 将包含每个板数据,仅此而已。这不会让模板系统变得很慢吗? - 通过参数添加所需的变量作为参考?(与我的第二个建议相同,但发动机减速较少)。
- 使用全局变量?不!
还有哪些选择?非常感谢 :)