Nuestro grupo de trabajo ha estado por horas buscando soluciones a tu pregunta, te regalamos la solución y deseamos serte de gran apoyo.
Solución:
La sintaxis adecuada para variables variables es:
$"check" . $counter = "some value";
Sin embargo, yo muy desalentado este. Lo que está tratando de lograr probablemente se pueda resolver de manera más elegante mediante el uso de matrices. Ejemplo de uso:
// Setting values
$check = array();
for ($counter = 0; $counter <= 67; $counter++)
echo $counter;
$check[] = "some value";
// Iterating through the values
foreach($check as $value)
echo $value;
Debe usar la sintaxis $'varname':
for ($counter=0,$counter<=67,$counter++)
echo $counter;
$'check' . $counter ="some value";
esto funcionará, pero ¿por qué no usar simplemente un array?
$check[$counter] = "some value";
Esto es útil en algunos casos. Por ejemplo, si su aplicación tiene algo así como 2 entradas de idioma en DB.
echo $this->'article_title_'.$language;
Eso es mucho más útil que, por ejemplo, esto;
if($language == 'mylanguage1')
echo $this->article_title_mylanguage1;
else
echo $this->article_title_mylanguage2;
Obviamente, esto es lo que no deberías tener que hacer en tu aplicación multilingüe, pero he visto casos como este.
Si para ti ha sido de ayuda este post, sería de mucha ayuda si lo compartes con el resto desarrolladores y nos ayudes a dar difusión a este contenido.