我正在用php创建一个应用程序,其中我有一个包含php模板文件的函数。为了可用性,我想动态定义哪些变量在包含的文件范围内可用。例如:
includeTemplate( 'myinclude.php', array(
'var1' => 'key1',
'var2' => 'key2',
) );
function includeTemplate( $path, $variables ) {
include( $path );
}
在我的包含中.php
echo $var1; // key1
echo $var2; // key2
这可能吗?如果没有,对于如何实现类似目标,还有其他建议吗?
您的变量作为键/值对数组传递。要按名称/键使用它们,您必须从数组中提取()它们作为单独的命名变量
extract($variables);
虽然这不是一个非常干净的方法,但要做的事情
我知道它的答案很旧,但要让它工作,您可能需要这样做:
includeTemplate( 'myinclude.php', array(
'var1' => 'key1',
'var2' => 'key2',
) );
function includeTemplate( $path, $variables ) {
include("$path");
}
include($path) 需要 " 来解析 var,然后将其内容提供给 Include 函数。
与其为您的模板包含文件,为什么不看看面向对象的 php?使用继承,您可以为"基"模板创建一个类,然后为扩展原始模板的其他模板创建类。
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;
显然,如果你不熟悉这个,你必须学习一些关于面向对象编程的知识,但它可能是更好的方法。