Using braces with dynamic variable names in PHP

I’m trying to use dynamic variable names (I’m not sure what they’re actually called) But pretty much like this:

for($i=0; $i<=2; $i++) {
    $("file" . $i) = file($filelist[$i]);
}

var_dump($file0);

The return is null which tells me it’s not working. I have no idea what the syntax or the technique I’m looking for is here, which makes it hard to research. $filelist is defined earlier on.


Answer

Wrap them in {}:

${"file" . $i} = file($filelist[$i]);

Working Example


Using ${} is a way to create dynamic variables, simple example:

${'a' . 'b'} = 'hello there';
echo $ab; // hello there

Leave a Reply

Your email address will not be published. Required fields are marked *