在php中同时定义多个结果

在php中同时定义多个结果,php,smarty,Php,Smarty,我有一个$config变量,里面有数组。在smarty中,我按如下方式分配变量: $smarty->assign('config', $config); 当我调用它时,我使用了:{$config.wateverarrayyouwant} 现在我想用php做同样的事情。我想用同样的方式定义它们。如何在一行中定义$config中的所有数组? 我只知道如何使用以下方法一次定义一个变量: define('wateverarrayyouwant', $config['wateverarrayyou

我有一个
$config
变量,里面有数组。在smarty中,我按如下方式分配变量:

$smarty->assign('config', $config);
当我调用它时,我使用了:
{$config.wateverarrayyouwant}
现在我想用php做同样的事情。我想用同样的方式定义它们。如何在一行中定义
$config
中的所有数组? 我只知道如何使用以下方法一次定义一个变量:

define('wateverarrayyouwant', $config['wateverarrayyouwant']);
我尝试将wateverarrayyouwant更改为变量,因为它可以是任何数组:

define('$wateverarrayyouwant', $config[$wateverarrayyouwant]);

但是上面的代码不起作用。实现我想要的东西的好方法是什么?

如果要为数组中的每个键值对创建
定义
,可以使用:

<?php
foreach($config as $key => $value) {
    define($key, $value);
}

您甚至可能不想在这里使用define<代码>定义
用于创建非简单变量,并带有某些含义:

  • 它们在脚本的生命周期中是不变的
  • 它们必须是标量
如果您只需要一个数组变量,请使用以下命令像普通命令一样定义它:

$whatever = array(
  'key1' => 'value1'
);

这个问题不可能解决。因为我试图将变量定义为常量。我只是在想如何减少变量的字母,但我从来没有想过最好不要去管它们。从逻辑上讲,为什么有人需要将
$config[$wateverarrayyouwant]
更改为
wateverarrayyouwant
。我只是想保持一个整洁的代码。但是现在我在想这件事。。最好保持原样:
$config[$wateverarrayyouwant]

这可以通过以下方式实现:

<?php
foreach($config as $key => $value){
    $$key = $value;
}
?>
foreach($config as $key => $value){
    $$key = $value;
}

他已经知道如何制作数组,这就是他要传递给Smarty的内容;)我认为他想让配置常量(这取决于你认为一个配置变量是什么)。或者,他希望他们是全球性的或超级全球性的。超级全局不能发生,因为它们是保留的,但另一个选项是将其分配给
$GLOBALS['config']=$config不是我想要的,但是你的答案应该得到+1。哈哈,谢谢!那么你想要什么,因为我现在不太确定现在我正在考虑,我认为这是不可能的。。我真的不需要解释。。我将删除该问题。@shnisaka无需删除该问题-创建一个解释为什么您想做的事情不可能的答案,并选择该答案作为答案,以便其他搜索类似内容的人知道为什么它不能做^^哦如果你想让它们成为自己的变量,那是可以做到的<代码>$$key=$value
foreach
循环内!编辑了两个答案,因为我忘了这里的编辑必须经过同行评审批准^^