遍历具有通用名称的变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遍历具有通用名称的变量相关的知识,希望对你有一定的参考价值。

乍一看,我想您可以得到我想要做的。我想循环通过具有相同名称但带有数字前缀的变量。对于应该使用的循环类型,我也有些困惑,不确定“ for”循环是否可以工作。唯一的事情是我无法解决php如何“即时”解释或伪造变量的问题。在输出带有美元符号的字符串时也会遇到麻烦。预先感谢!

$hello1 = "hello1";
$hello2 = "hello2";
$hello3 = "hello3";
$hello4 = "hello4";
$hello5 = "hello5";
$hello6 = "hello6";
$hello7 = "hello7";
$hello8 = "hello8";
$hello9 = "hello9";
$hello10 = "hello10";

for ( $counter = 1; $counter <= 10; $counter += 1) {
    echo $hello . $counter . "<br>";
}
答案

尝试${"hello" . $counter}

$a = "hell";
$b = "o";
$hello = "world";
echo ${$a . $b};

// output: world
另一答案

它通常令人不悦,因为它使代码更难以阅读和遵循,但是您实际上可以将一个变量的值用作另一个变量的名称:

$foo = "bar";
$baz = "foo";

echo $$baz; // will print "bar"

$foofoo = "qux";
echo ${$baz . 'foo'}; // will print "qux"

有关更多信息,请参见variable Variables上的PHP文档。

但是,正如我已经提到的,这可能会导致一些非常难以阅读的代码。您确定不能只使用数组吗?

$hello = array(
    "hello1",
    "hello2",
    // ... etc
);

foreach($hello as $item) {
    echo $item . "<br>";
}
另一答案

您可以将变量用作:

for ( $counter = 1; $counter <= 10; $counter += 1) {
        echo ${'hello' . $counter } , '<br>';
}
另一答案

我想你甚至不需要声明$ hello1 =“ hello1”。因为$ counter正在按其循环递增数字。

<?php 
for ( $counter = 1; $counter <= 10; $counter += 1) {
echo 'hello' . $counter . "
";
}
?>

所以这足够获得所需的输出。

输出将是:-

hello1
hello2
hello3
hello4
hello5
hello6
hello7
etc...

以上是关于遍历具有通用名称的变量的主要内容,如果未能解决你的问题,请参考以下文章

使用jQuery将具有特定类的每个div的名称保存到变量中

如何计算破折号媒体片段名称的 $Time$ 变量?

Eclipse 中的通用代码片段或模板

遍历具有不同索引的表单元素名称数组

如何更改片段中的主要活动变量

mongodb多个匹配条件并返回具有通用名称的文档