PHP - 初始化变量的函数

问题描述:

我想通过路由器在我的模板中创建交叉变量。PHP - 初始化变量的函数

我想做的事:

$router->with(array(...)); 

这里是我的功能:

public function with($vars) 
{ 
    if(is_array($vars)) 
    { 
     foreach ($vars as $key => $value) 
     { 
      $$key = $value; 
     } 
    }else 
    { 
     die("La fonction with() demande un tableau en paramètre."); 
    } 
} 

我在正确的轨道上?

+3

我不会创建所有这些变量。只需使用该数组并使用密钥访问数据。 – Rizier123

+0

完全没用,因为这些变量只会在你的'with()'函数中存在,并且只要函数退出就会被销毁。 –

+0

是的,我忘了extract()函数。一切都修改和功能,谢谢 –

您可以改为将模板中的密钥提取为变量。像这样

function with($view, array $data = []) { 
    extract($data); 
    require $view . '.php'; 
} 

with('some_view', [ 
    'name' => 'John Doe' 
]); 

然后你就可以在你的视图中使用它,像这样

<h1><?= $name ?></h1>