【问题标题】:Change '-' to variable and use this variable to call exact value将“-”更改为变量并使用此变量调用精确值
【发布时间】:2016-01-23 23:35:25
【问题描述】:

例如:

$k = "+";

$q = 8;
echo $array[$q+1];

但我想要以下内容:

echo $array[$q$k1];

所以它基本上说“将数组的值称为 8+1 所以 9”。如果我想调用 7,我可以使用 $k = "-"。

【问题讨论】:

  • 你能解释一下你为什么要这样做吗?
  • 问题是你的变量是一个字符串而不是一个算术运算符。我不明白这个用例是什么?也许用开关做类似的事情更好?
  • 我有一个系统,其中 2 个数组相互比较。第一个数组有一个大约 60 个字符的字符串,其中隐藏着单词,另一个数组包含单词的字符串。我搜索两个相同的字符,如果该字符 +1 与大数组中的下一个字符相同,它会继续直到找到整个单词。但是由于单词是从右到左的,我也必须检查左,并且将 + 更改为 - 使用单个循环使这种方式更简单

标签: php variables key


【解决方案1】:

在 PHP 中,不能将运算符视为变量。

不过,有两种基本方法可以达到相同的效果。

您可以使用条件并相应地指定值:

$r = 1; //the value you're adding; moved to a variable for clarity
$op = '+'; //+ means add; anything else means subtract

echo $array[$q + ($op === '+' ? $r : -$r)];

//or

if($op === '+') {
    echo $array[$q + $r];
} else {
    echo $array[$q - $r];
}

或者你可以将运算改为乘法:

echo $array[$q + (($op === '+' ? 1 : -1) * $r)];

任何一种形式都可以;这只是对您的代码最方便的问题。

【讨论】:

  • 谢谢,正是我需要的。
猜你喜欢
  • 2019-01-21
  • 1970-01-01
  • 1970-01-01
  • 2017-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-27
  • 2015-10-03
相关资源
最近更新 更多