2016-10-18 2 views
1

J'essayais de réaliser quelque chose de simple et je me demandais si c'était possible. La recherche Google s'est révélée inutile cette fois-ci. Probablement ce n'est pas possible, mais je ne suis pas sûr. J'ai le code suivant:accès php variable par concaténation

<?php 
    //Enter your code here, enjoy! 

$query1="yay"; 
$query2="it"; 
$query3="works"; 

for($x=1;$x<=3;$x++){ 
    $query="\$query".$x; //I need to assign the above variables 
    echo $query; 
} 

?> 

Je veux que la sortie soit "yayitworks" mais je reçois "$ query1 $ query2 $ requete3". Y a-t-il un moyen d'obtenir mon résultat? Je sais qu'une déclaration de changement m'aidera à atteindre cet objectif, mais je suis simplement curieux.

Merci à l'avance ... :-)

+0

Supprimer le backslash avant le signe dollar? – Robert

Répondre

1

Ce que vous voulez est des variables variables: http://php.net/manual/en/language.variables.variable.php

$query = ${"query".$x}

+0

omg !! Premières fonctions variables, maintenant variables variables. Merci pour l'info. Je ne savais pas que cela existait ... :-) – user3889963

+0

@ user3889963 J'ai fait une erreur dans ma réponse originale, je ne sais pas si vous l'avez déjà essayé, mais je viens de l'éditer pour le réparer, devrait fonctionner correctement maintenant. – Mogzol

+0

pas de problème ... J'ai vérifié les docs. Merci pour le lien...:-) – user3889963

0

Utilisez un tableau:

$queries = array("yay", "it", "works"); 

for($x=0;$x<count($queries);$x++){ 
    $query = "\{$queries[$x]}"; //I need to assign the above variables 
    echo $query; 
} 

Si vous voulez avoir le chemin complet en une seule utilisation. = au lieu de =

for($x=0;$x<count($queries);$x++){ 
    $query .= "\{$queries[$x]}"; //I need to assign the above variables 
} 
echo $query;