变量内的变量可能吗?

时间:2010-05-18 14:39:59

标签: php variables

我正在尝试为我的一些代码创建循环语句,并且想知道如何将变量放在另一个变量中。

例如:

<?php 
$j=1;
while ($j <= 9): {

$f$jfname = $_SESSION['F$jFirstName'];
$f$jmi = $_SESSION['F$jMI'];
$f$jlname = $_SESSION['F$jLastName'];
}
 $j++; endwhile; 
?>

目标是在循环期间使j变量增加并将值更改为:

  

$ f1fname $ f2fname $ f3fname

等等。

有什么想法吗?

修改

是的我知道我的INITIAL形式在我捕获信息的方式上有缺陷(作为单个变量而不是数组)所以任何答案都告诉我SESSION是一个数组等等是无关紧要的因为我无法隐式调用任何变量来自我创建的SESSION变量(没有逐行引用)存储在SESSION中的所有变量都是完全唯一的并且彼此独立。

6 个答案:

答案 0 :(得分:3)

阵列怎么样?更多:对象数组?

答案 1 :(得分:2)

没有自己测试代码,但可能是这样:

<?php 
$names = array();
for ($j=1; $j <= 9; $j++) {
   if (! isset($names[$j]))
     $names[$j] = array();
   $names[$j]['fname'] = $_SESSION["F{$j}FirstName"];
   $names[$j]['mi'] = $_SESSION["F{$j}MI"];
   $names[$j]['lname'] = $_SESSION["F{$j}LastName"];
}
?>

然后你有一个包含userinfo

数组的数组

答案 2 :(得分:1)

php不会在单引号内解析变量',使用双引号“并尝试这种格式......

${'f'.$j.'fname'} = $_SESSION["F$jFirstName"];

答案 3 :(得分:1)

要引用给定名称的变量,可以按如下方式进行:

  • 直接:

    $result=$myVar;
    
  • 来自字符串:

    $result="$myVar";
    
  • 来自变量:

    $a='myVar';
    $result=$$a;
    

你的代码......

    // preferred way
    $results=array();
    for ($j=1; $j<=9; $j++) {
        $result=array();
        $result['jfname'] = $_SESSION['f'.$j.'FirstName'];
        $result['jmi'] = $_SESSION['f'.$j.'MI'];
        $result['lname'] = $_SESSION['f'.$j.'LastName'];
        $results[$j]=$result;
    }

顺便说一下,

$_SESSION['f'.$j.'LastName'];

相同
$_SESSION["f{$j}LastName"];

答案 4 :(得分:0)

我不知道你为什么需要这个,但我想到了它并且真的想要这样做,你只需要写

$varname = "f".$j."fname"; 
$$varname = ...

而不是

$f$jfname = ...

答案 5 :(得分:0)

哦,等等,我想我现在明白了。

我们只有一个数组来包含它?变量很乱,你不觉得吗?

<?php
$f = array();
for($j = 1; $j <= 9; $j++) {
  $f[$j] = array();
  $f[$j]['fname'] = $_SESSION['F' . $j. 'FirstName'];
  // etc.
}
?>