【问题标题】:PHP, how to use a character as a variable name? [duplicate]PHP,如何使用字符作为变量名? [复制]
【发布时间】:2017-02-05 23:07:47
【问题描述】:

早安,

我目前正在尝试弄清楚如何使用存储在变量中的字符来按名称调用另一个变量。例如:

$string = "ABCD";
$A = 10;
echo //Here I want to get $string[0]'s value, which will be A, then echo the value of the variable named after $string[0]'s value, $A. So in other words the output of the echo should be 10.

如果我对这个问题不够清楚,请告诉我。

【问题讨论】:

  • echo ${$string[0]};?
  • 逻辑叫做variables of variable,这里@Darren是对的。
  • 小心变量变量,因为它们几乎从不产生干净、可维护的代码。除了纯粹的学术代码,您应该尽可能避免使用它们。

标签: php variables


【解决方案1】:

您应该参考PHP Variable variables。

变量变量获取变量的值并将其视为变量的名称。

尝试以下方法之一:

$string = "ABCD";

echo ${$string[0]};  // 10
echo $$string[0];    // 10

【讨论】:

  • 非常感谢!太棒了。我尝试使用可变变量,但它没有打印出任何东西。我意识到这是因为我将所有变量都默认为 false。
【解决方案2】:

欢迎来到 SO,

根据您的询问如果我对这个问题不够清楚,请告诉我。,我喜欢这个,因为您是这个网站的新手。现在让我们去现场吧。

你有一个变量:$string = "ABCD";,还有一个是$A = 10;,或者$B = 10;等等。

您真正想知道的是如何使用$string 值获得相同的值??

解决方案:
这背后的逻辑叫做variables.variable,让你使用的是字符串的索引。

$string = "ABCD"; // your variable
$A = 10;          // your another variable
$B = 10;          // may your another variable

现在,让$string[0],在这个变量中我们有一个值,值是A,那么如果我们在这个值之前放一个$符号,那么会发生什么?这将创建一个新变量,如果您回显它,如果该变量有值,您将获得这个新创建的变量的值。

去做吧: echo ${$string[0]}; // 10

【讨论】:

    【解决方案3】:

    您可以执行$arr1 = str_split($str); 来获取字符数组,然后基于该数组执行类似echo "$$arr1[0]" 的回显

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 2016-10-09
      • 2014-07-25
      • 2012-07-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多