0

如果这些变量来自 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
?>

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

4

1 回答 1

2

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

所以如果你有

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

在包含范围内,您将能够

Hello <?= $who ?>

这是制作低脂模板函数的简单方法,例如:

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

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

于 2013-06-07T03:32:22.617 回答