合并变量

时间:2010-08-05 04:54:06

标签: php merge

我们有$id$title个变量,每次都会更改。

对于每个$id,我们应该创建一个新变量$temp_title_%id%,并为其赋予$title的值。

像:

$id = 10;
$title = 'Hello people!';
$temp_title_10 = 'Hello people!';

试过这个(不起作用):

$temp_title_ . $id = $title;

感谢。

6 个答案:

答案 0 :(得分:6)

如何使用数组呢?数组是存储多个值的更好方法。很多, 很多 更好。

$title_array = array();

$id = 10;
$title = 'Hello people!';
$title_array[$id] = $title;

答案 1 :(得分:2)

如果您尝试保留变量,如果$id变量始终为整数,则将它们放在数组中可能会更好。

$persistence_array = array();

while (some_requirement) {
    $id = ...;
    $title = ...;
    $persistence_array[$id] = $title;
}

如果$id也可能包含字母数字数据,那么您可以始终以相同的方式使用哈希/字典(使用少量额外逻辑甚至可以为同一个ID存储多个值)。

请勿这样做:如果您绝对必须有变量,那么您可以使用variable variables但请不要。

答案 2 :(得分:1)

我认为做你想做的事情是个坏主意,但无论如何都要做到这一点:

$GLOBALS["temp_title_".$id]=$title;

或者,你可以这样做:

$varname="temp_title_".$id;
$$varname=$title;

做我认为你要做的事情最正确的方法是使用数组:

// Somewhere in the PHP script:
$an_array=array();

// To assign:
$an_array[$id]=$title;

// To retrieve:
echo $an_array[$id];

答案 3 :(得分:1)

使用此:

$metavariable = "temp_title_".$id;
$$metavariable = $title;  // note the $$

答案 4 :(得分:1)

${'temp_title_' . $id} = $title;
echo $temp_title_10;

答案 5 :(得分:1)

使用PHP的变量变量 http://php.net/manual/en/language.variables.variable.php

$variable = $title.'_'.$id
$$variable = 'hello, world!'