【问题标题】:php - get current variable name and put it as array keyphp - 获取当前变量名并将其作为数组键
【发布时间】:2020-07-20 04:23:47
【问题描述】:

我想在 php 中动态地做这样的事情:

$varname = $clang_arr['varname'];

在循环中,类似于:

$a = [$x, $y, $z, $w, ...];
foreach($a as $v) $v = $clang_arr['v'];

上面的结果将是:

$x = $clang_arr['x']
$y = $clang_arr['y']
...

我尝试了一些方法,但不幸的是它没有奏效! 我可以在 php 中动态地做这样的事情,还是不能?

提前致谢

【问题讨论】:

  • 你想创建动态变量?
  • 查看variable variables。在这种情况下,您的 $a 数组应该包含变量名。然而,使用动态变量通常被认为是一种代码异味。你想解决什么问题?
  • 如果你能用正确的输入数据和预期的结果正确地阐述你想要实现的目标,而不是做所有这些。或许你会得到更合适、更快捷的答案。
  • @Jeto 我要解决的问题是:我有一个语言 json 文件,我想让 json 文件中的所有键成为 php 中的变量,例如...“json_key”: "json_val"... $json_key = $clang_arr['json_key'] // 结果将是 "json_val"..... 我想做这个,因为我已经做了一个系统,几乎完成了,语言标签是通过 php 变量,现在我进行了更新,所有语言标签都在 json 文件中,所以我想做这个而不是编辑整个系统....我希望你明白我真正想要做什么
  • 如果您的应用程序依赖变量名来工作,请考虑重构。

标签: php arrays var


【解决方案1】:

您要查找的函数是extract。简单例子:

$arr = ['x' => 1, 'y' => 2];
extract($arr);
var_dump($x, $y);
// outputs
// int(1)
// int(2)

【讨论】:

  • 谢谢你,这正是我想要的……非常感谢
  • 但是我还是不明白$arr['x']有什么问题?
  • 你可以在主要问题上查看 cmets...我的评论,第四条评论,知道我想解决什么问题
猜你喜欢
  • 2011-12-30
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-15
  • 2011-01-11
  • 2010-11-04
相关资源
最近更新 更多