Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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 - Fatal编程技术网

动态地将php中其他变量的一个变量组合在一起

动态地将php中其他变量的一个变量组合在一起,php,Php,我想知道您是否可以从另一个变量构造一个PHP变量 $cf = new RecursiveDirectoryIterator(dirname(__DIR__) . DS . "configuration"); foreach (new RecursiveIteratorIterator($cf) as $filename => $file) { if ($cf->getFilename() != "." && $cf->getFilename() !=

我想知道您是否可以从另一个变量构造一个PHP变量

$cf = new RecursiveDirectoryIterator(dirname(__DIR__) . DS . "configuration");

foreach (new RecursiveIteratorIterator($cf) as $filename => $file) {
    if ($cf->getFilename() != "." && $cf->getFilename() != "..") {
        $ex = explode(".", $filename);
        $_.$ex[0] = parse_ini_file($filename, true);
    }
}
我想基于另一个变量的输出构建一个动态变量

$cf = new RecursiveDirectoryIterator(dirname(__DIR__) . DS . "configuration");

foreach (new RecursiveIteratorIterator($cf) as $filename => $file) {
    if ($cf->getFilename() != "." && $cf->getFilename() != "..") {
        $ex = explode(".", $filename);
        $_.$ex[0] = parse_ini_file($filename, true);
    }
}
在上面的代码中,我想查看我的配置文件夹,并使输出类似这样

假设在配置文件夹中有db.ini和theme.ini

因此,输出结果应该是

$_db = parse_ini_file("db.ini", true);
$_theme = parse_ini_file("theme.ini", true);
我想也许把变量连接在一起,我可以创建一个新的变量;-)

这种情况下,我希望将尽可能多的.ini文件转储到我的配置文件夹中,并让脚本通过为该文件加载parse_ini_file函数为我动态生成$变量

还是我疯了?

试试看

$name = '_' . $ex[0];
$$name = parse_ini_file($filename, true);
动态变量 您想要做的是可能的,它们更被称为变量:

比如说

$sql = "my query";
$variable = "sql";
echo ${$variable};
输出

我的查询

因此,对于您的示例,只需将其更改为

$_{$ex[0]} = parse_ini_file($filename, true);
更好的方法 但其固有的问题是,要跟踪ini文件以及它们存储在哪个变量中要困难得多。一种更简洁的方法是使用关联数组

因此,您的代码如下所示:

$name = pathinfo($filename, PATHINFO_FILENAME); //mildly more accurate then explode
$ini[$name] = parse_ini_file($filename, true);
然后在查看之后,只需打印\r$ini即可查看结果

print_r($ini);
您可以这样做:

// Inside the loop.
$ex = explode(".", $filename);
$variable = '_' . $ex[0];
$$variable = parse_ini_file($filename, true);
这会满足你的要求。但是,请注意,如果
$ex[0]
不是语法上有效的PHP变量名(如
“foo.bar”
),则该变量将无法访问,除非通过动态变量机制(
$varname=“foo.bar”;$value=$$varname;


此外,请确保您信任正在读取的INI文件,因为这可能会破坏您自己的变量,并用其他数据覆盖它们。

现在还不清楚您要完成什么。请改写你的问题。这些变量是我自己的个人档案,从这个意义上说,我相信我自己。所以如果我使用你提到的$$varname位会更好?我答案顶部的代码就是你想要使用的代码。