PHP中的多变量

PHP中的多变量,php,Php,一般来说,我对PHP和编程相当陌生。。。我试图使用foreach循环在我创建的页面上设置一些选项。除了最后一节,我尝试动态分配变量,这样我就可以在循环之外使用它们 <?PHP $array=array(foo, bar, baz); foreach ($array as $option) { // I have if statements to determine what $option_req // and $option_status end up being, th

一般来说,我对PHP和编程相当陌生。。。我试图使用foreach循环在我创建的页面上设置一些选项。除了最后一节,我尝试动态分配变量,这样我就可以在循环之外使用它们

<?PHP

$array=array(foo, bar, baz);

foreach ($array as $option) {

  // I have if statements to determine what $option_req 
  // and $option_status end up being, they work correctly.

  $option_req="Hello";
  $option_status="World";

  $rh='Req_';
  $sh='Status_';

  $$rh.$$option=$option_req;
  $$sh.$$option=$option_status;

  }

echo "<br>R_Foo: ".$Req_foo;
echo "<br>S_Foo: ".$Status_foo;
echo "<br>R_Bar: ".$Req_bar;
echo "<br>S_Bar: ".$Status_bar;
echo "<br>R_Baz: ".$Req_baz;
echo "<br>S_Baz: ".$Status_baz;

?>

我已经玩过一点了,谷歌上的搜索今天似乎没有结果。

看起来PHP不喜欢在你尝试做作业时使用连接。试着事先这样做,比如:

<?php

$array = array('foo', 'bar', 'baz');

foreach ($array as $option) 
{
    $option_req="Hello";
    $option_status="World";

    $rh = 'Req_';
    $sh = 'Status_';

    $r_opt = $rh.$option;
    $s_opt = $sh.$option;

    $$r_opt = $option_req;
    $$s_opt = $option_status;
}

echo "<br>R_Foo: ".$Req_foo;
echo "<br>S_Foo: ".$Status_foo;
echo "<br>R_Bar: ".$Req_bar;
echo "<br>S_Bar: ".$Status_bar;
echo "<br>R_Baz: ".$Req_baz;
echo "<br>S_Baz: ".$Status_baz;

正如其他评论者所说,这不是一个好的做法。尝试将数据存储在一个数组中,而不是用变量将名称空间弄得乱七八糟。

当您尝试执行赋值时,PHP似乎不喜欢串联。试着事先这样做,比如:

<?php

$array = array('foo', 'bar', 'baz');

foreach ($array as $option) 
{
    $option_req="Hello";
    $option_status="World";

    $rh = 'Req_';
    $sh = 'Status_';

    $r_opt = $rh.$option;
    $s_opt = $sh.$option;

    $$r_opt = $option_req;
    $$s_opt = $option_status;
}

echo "<br>R_Foo: ".$Req_foo;
echo "<br>S_Foo: ".$Status_foo;
echo "<br>R_Bar: ".$Req_bar;
echo "<br>S_Bar: ".$Status_bar;
echo "<br>R_Baz: ".$Req_baz;
echo "<br>S_Baz: ".$Status_baz;

正如其他评论者所说,这不是一个好的做法。尝试将数据存储在数组中,而不是用变量将名称空间弄乱。

要访问某个数组项,只需访问某个数组项即可。 不需要循环

$req = array("foo" => 1, 
             "bar" => 2, 
             "baz" => 3,
             );
echo $req['foo'];

简单明了

要访问某个数组项,只需访问某个数组项即可。 不需要循环

$req = array("foo" => 1, 
             "bar" => 2, 
             "baz" => 3,
             );
echo $req['foo'];

简单易懂的变量不是这样工作的。您需要有一个包含字符串的变量

$opt_r = $rh.$option;
$$opt_r = $option_req;

$opt_s = $sh.$option;
$$opt_s = $option_status;
此外,请确保引用字符串:

$array=array('foo', 'bar', 'baz');

我不建议使用变量,但如果您愿意,这就是如何做到的。

变量不是这样工作的。您需要有一个包含字符串的变量

$opt_r = $rh.$option;
$$opt_r = $option_req;

$opt_s = $sh.$option;
$$opt_s = $option_status;
此外,请确保引用字符串:

$array=array('foo', 'bar', 'baz');
我不建议使用变量,但如果你想,这就是方法。

你可以,但你不应该!做:

${$rh.$option} = ...
你可以,但你不应该!做:

${$rh.$option} = ...

所有这些都是神圣的,请不要这样做。也许如果你添加你的整个代码,它会更有意义。。。你到底想做什么?尽管很神圣,但请不要这样做。也许如果你添加整个代码,它会更有意义。。。你到底想干什么?谢谢你的帮助!这个例子很有效。。。看到这个示例后,我单击了变量。上面的一个数组示例为我提供了一个更好的方法。谢谢你的帮助!这个例子很有效。。。看到这个示例后,我单击了变量。上面的一个数组示例为我提供了一个更好的方法。谢谢。我总是分配只使用默认数字[0]、[1]等的数组。给定数组元素名称使其更易于引用!谢谢我总是分配只使用默认数字[0]、[1]等的数组。给定数组元素名称使其更易于引用!