将变量传递给if语句 - php

时间:2014-08-13 08:59:18

标签: php

我在php中有一系列变量:

move1A = $row['column'];
move2A = $row['column'];
move3A = $row['column'];
etc.

我想创建一个代表这些变量的变量,并检查它是否为NULL。我花了很多时间看,虽然我相信variable variables可能是我问题的关键。到目前为止,我已经尝试过:

$current_move_check = 'move'.$moveCounter.'A';

$current_move_check = '$move'.$moveCounter.'A';

似乎都没有用。有什么建议可以做这样的工作吗?谢谢!

更新:

所以我试图根据用户输入循环moveXA变量,我需要运行不同的脚本,无论它是null还是set。

我想:

elseif (!$$current_move_check) {

elseif ($$current_move_check) {

会起作用,但它们似乎没有按预期输出。

2 个答案:

答案 0 :(得分:1)

考虑到你的更新,我真的建议你使用一个数组,而不是变量变量技巧。您的代码更有意义,更易于维护:

$count = 0;
$moveA[++$count] = $row['column'];
$moveA[++$count] = $row[...];
$moveA[++$count] = $row[...];
...

foreach ($moveA as $key => $value) {
    if ($value) { // = $$current_move_check 

    } else { // = !$$current_move_check

    }
}

正如@MatsLindh在其评论中所指出的那样:"变量变量永远不是一个好主意。除非你知道什么时候打破这个规则是有意义的,否则不要。"

答案 1 :(得分:0)

$current_move_check = 'move'.$moveCounter.'A';
echo $$current_move_check;

现在你也可以检查这个

if($$current_move_check!=NULL)
{
     // do your code
}