2010-04-28 9 views

Répondre

19

Utilisez parse_str() ou ${'track_' . $i} = 'val';.

+0

Pourquoi le downvote? –

+3

+1 pour $ {...} au lieu des variables variables. –

+3

$ {...} est toujours une variable variable. –

3
<? 
for($i = 0; $i < 10; $i++) { 
    $name = "track_$i"; 
    $$name = 'hello'; 
} 

print("==" . $track_3); 
0
<?php 

for ($i = 1; $i <= 3; $i++) { 
    ${"track_{$i}"} = 'this is track ' . $i; // use double quotes between braces 
} 

echo $track_1; 
echo '<br />'; 
echo $track_3; 

?> 


Cela fonctionne aussi pour vars imbriqués:

<?php 

class Tracks { 
    public function __construct() { 
     $this->track_1 = 'this is friend 1'; 
     $this->track_2 = 'this is friend 2'; 
     $this->track_3 = 'this is friend 3'; 
    } 
} 

$tracks = new Tracks; 

for ($i = 1; $i <= 3; $i++) { 
    echo $tracks->{"track_{$i}"}; 
    echo '<br />'; 
} 

?> 
Questions connexes