我在php中创建一个应用程序,我有一个包含php模板文件的函数。为了便于使用,我想动态定义哪些变量在包含的文件范围内可用。例如:
includeTemplate( 'myinclude.php', array(
'var1' => 'key1',
'var2' => 'key2',
) );
function includeTemplate( $path, $variables ) {
include( $path );
}
在myinclude.php中
echo $var1; // key1
echo $var2; // key2
这可能吗?如果没有关于如何实现类似的任何其他建议?
答案 0 :(得分:2)
您的变量作为键/值对的数组传递....要按名称/键使用它们,您必须从数组中extract()将它们作为单独的命名变量
extract($variables);
虽然这不是一个非常干净的方法,你正在尝试做什么
答案 1 :(得分:0)
答案我已经过时了,但是为了让它有效,你可能需要这样做:
includeTemplate( 'myinclude.php', array(
'var1' => 'key1',
'var2' => 'key2',
) );
function includeTemplate( $path, $variables ) {
include("$path");
}
包括($ path)需求"解析var,然后将其内容提供给Include函数。
答案 2 :(得分:0)
为什么不看一下object oriented php,而不是包含模板的文件?使用inheritance,您可以为“基本”模板创建一个类,然后为其他扩展原始模板的模板创建类。
class baseTemplate
{
public $var1 = value;
public function __construct()
{
}
}
class subTemplate extends baseTemplate
{
public $var2 = value;
public function __construct()
{
parent::__construct();
}
}
变量只会链接到相应的类和父级。
//contains $var1
$template1 = new baseTemplate();
echo $template1->var1;
//contains $var1 & $var2
$template2 = new subTemplate();
echo $template2->var1 . " " . $template2->var2;
显然,如果你不熟悉这个,你将不得不学习一些面向对象编程,但它可能是更好的方法。