Skryeur
Skryeur

Reputation: 89

Passing variable variables into if statement - php

I have a series of variables in php:

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

I want to create a variable that will represent these variables and check if it is NULL. I have spent quite a bit of time looking, and although I believe that variable variables may be the key to my problem. So far I have tried:

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

and

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

Neither seem to work. Any suggestions for making something like this work? Thanks!

UPDATE:

So I'm trying to loop the moveXA variables based on user input and I need to run different script whether it is null or set.

I thought that:

elseif (!$$current_move_check) {

and

elseif ($$current_move_check) {

would work but they seem to not be outputting as expected.

Upvotes: 0

Views: 659

Answers (2)

Clément Malet
Clément Malet

Reputation: 5090

Considering your update, I'd really suggest you to use an array, rather than the variable variables trick. Your code would makes more sense and be easier to maintain :

$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

    }
}

As @MatsLindh pointed out in its comment : "Variable variables are never a good idea. Unless you know when it makes sense to break that rule, don't."

Upvotes: 1

Satish Sharma
Satish Sharma

Reputation: 9635

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

now you can check this as well like

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

Upvotes: 0

Related Questions