Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 变量中的变量可能吗?_Php_Variables - Fatal编程技术网

Php 变量中的变量可能吗?

Php 变量中的变量可能吗?,php,variables,Php,Variables,我试图为我的一些代码创建一个循环语句,我想知道如何将一个变量放入另一个变量中 例如: 其中,目标是使j变量在循环过程中增加,并将值更改为: $f1fname$f2fname$f3fname 等等 有什么想法吗 编辑 是的,我知道我的初始表单在捕获信息的方式上存在缺陷(作为单个变量而不是数组),因此任何告诉我会话是数组等的答案都是不相关的,因为我无法从我创建的会话变量隐式调用任何变量(没有逐行引用)会话中存储的所有变量都是完全唯一的,并且彼此独立 阵列呢?更多:对象数组?数组呢?更多:对象数组

我试图为我的一些代码创建一个循环语句,我想知道如何将一个变量放入另一个变量中

例如:

其中,目标是使j变量在循环过程中增加,并将值更改为:

$f1fname$f2fname$f3fname

等等

有什么想法吗

编辑
是的,我知道我的初始表单在捕获信息的方式上存在缺陷(作为单个变量而不是数组),因此任何告诉我会话是数组等的答案都是不相关的,因为我无法从我创建的会话变量隐式调用任何变量(没有逐行引用)会话中存储的所有变量都是完全唯一的,并且彼此独立

阵列呢?更多:对象数组?

数组呢?更多:对象数组?

我不知道你为什么需要这个,但我知道你已经考虑过了,真的想这么做,你只需要写

$varname = "f".$j."fname"; 
$$varname = ...
而不是

$f$jfname = ...

我不知道你为什么需要这个,但我知道你考虑过了,真的想这么做,你只需要写

$varname = "f".$j."fname"; 
$$varname = ...
而不是

$f$jfname = ...

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

我们用一个数组来包含它怎么样?变量已经够乱了,你不觉得吗

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

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

我们用一个数组来包含它怎么样?变量已经够乱了,你不觉得吗

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

php不会解析单引号内的变量,请使用“双引号”并尝试此格式

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

php不会在单引号内解析变量,请使用“双引号”并尝试此格式

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

我自己没有测试代码,但可能类似于:

<?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数组的数组,我自己没有测试代码,但可能类似于:

<?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数组的数组要引用给定名称的变量,您可以按如下操作:

  • 直接:

    $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"];

要引用给定名称的变量,可以按如下操作:

  • 直接:

    $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"];


阿克。你的变量命名让我非常困惑。我不太确定你想要什么。。。我们可以尝试一个更简洁的代码示例,而不是您的应用程序代码,它只包含您想要的原则吗?不知道为什么这个问题令人困惑,或者为什么它应该得到-1?我认为有很多人以前不了解数组benefit@JM4:您已经在代码中找到了问题的解决方案。毕竟,
$\u SESSION
只是一个包含其他变量的变量。@Konrad Rudolph-它不是因为以下原因:我在SESSION中存储所有内容,没有任何变量名,所以为了调用第16个人的城市,我必须编写$\u SESSION['F16City']然后写出大量的代码,这正是我想要避免的。@JM4:我不是这个意思。您不需要使用
$\u SESSION
(事实上您不应该这样做),但是
$\u SESSION
本质上与您的解决方案相同(即关联数组)。事实上,与您在下面接受的解决方案中的
$names
相同。你的变量命名让我非常困惑。我不太确定你想要什么。。。我们可以尝试一个更简洁的代码示例,而不是您的应用程序代码,它只包含您想要的原则吗?不知道为什么这个问题令人困惑,或者为什么它应该得到-1?我认为有很多人以前不了解数组benefit@JM4:您已经在代码中找到了问题的解决方案。毕竟,
$\u SESSION
只是一个包含其他变量的变量。@Konrad Rudolph-它不是因为以下原因:我在SESSION中存储所有内容,没有任何变量名,所以为了调用第16个人的城市,我必须编写$\u SESSION['F16City']然后写出大量的代码,这正是我想要避免的。@JM4:我不是这个意思。您不需要使用
$\u SESSION
(事实上您不应该这样做),但是
$\u SESSION
本质上与您的解决方案相同(即关联数组)。事实上,与您在下面接受的解决方案中的
$names
相同。这似乎是OP想要的。。。但我要警告你们,这通常被认为是一个坏主意,可能会导致痛苦和难以诊断的bug。我需要编号变量的原因是,我有30个名字(在其他几个变量中),我想运行。我现在已经列出了所有的代码,但是文件的大小越来越大。遍历数组要比遍历带编号的变量容易得多。您以前使用过阵列吗@马丘-我才刚刚开始。一个月前刚开始尝试编写代码,但我正在使用fpdf输出一些会话变量。记住$f1fname是第一个人的名字,它在PDF中的位置比数组更容易记住[12]我知道数组是什么,我知道这是一个愚蠢的想法,我永远不会使用它,因为我知道它非常非常愚蠢-但它不是上述问题的答案,所以我不明白为什么我会因此而被否决…这似乎是OP想要的。。。但我要警告你们,这通常被认为是一个坏主意,可能会导致痛苦和难以诊断的bug。我需要编号变量的原因是,我有30个名字(在其他几个变量中),我想运行。我现在已经列出了所有的代码,但是文件的大小越来越大。遍历数组要比遍历带编号的变量容易得多。你工作了吗