PHP extract()和include() - >传递变量

时间:2013-06-07 02:27:50

标签: php include scope

如果这些变量来自extract(),如何为包含文件传递变量。

代码

<?php
    $hello = 'hello';
    include('world.php');
?>

<?php //world.php
    echo $hello;
?>

就像一个魅力

但是,如果?

<?php
    $arr = array('hello' => 'hello');
    extract($arr);
    echo $hello //it will print : hello
    include('world.php');
?>

<?php //world.php
    echo $hello; //it will print an error: Notice: Undefined variable: hello
?>

那么,如何将“提取的”变量传递给包含的文件?

1 个答案:

答案 0 :(得分:2)

该变量将在包含文件的范围内可用。

所以,如果你有

$arr = array("who"=>$world);
extract($arr);

在包含内你能够

Hello <?= $who ?>

这是制作低脂肪模板功能的简便方法,例如:

function renderTemplate($template, $args){
     extract($args);
     include($template);
}

由于提取调用是在函数中进行的,因此它不会污染全局空间,并且可以很容易地表示非程序员类型的符号。