2009-11-15 10 views
0

Je suis sûr que cela a déjà été demandé mais je ne le trouve pas. La documentation PHP n'est pas claire sur ce point et je ne trouve aucun exemple comme celui-ci. Est-il légal d'utiliser des variables dans la déclaration d'un tableau utilisez la construction array()? Pas comme des clés, comme les valeurs. Comme ceci:Déclarer un tableau en utilisant des variables et la construction array() en PHP

function myFunc($value1, $value2, $value3) { 
    $myArr = array('value1' => $value1, 'value2' => $value2, 'value3' => $value3); 
    return $myArr; 
} 

Est-ce légal?

+5

L'exemple fourni est complètement valide. Pourquoi ne pouvez-vous pas simplement le tester par vous-même et obtenir la réponse vous-même? :) –

+0

Eh bien, si pour aucune autre raison, maintenant il y a un enregistrement consultable sur le web. Donc, quelqu'un qui est allé comme je l'ai trouvé le trouvera. –

Répondre

4

Oui, c'est légal. Sinon, vous obtiendrez une erreur.

+0

Je ne suis pas au point de le faire encore, et ne le sera pas pendant un petit moment. Je voulais m'assurer que c'était légal avant d'écrire tout un tas de code basé dessus. Je n'ai pas trouvé d'exemple sur le web ou dans la documentation PHP. Et la documentation était un peu vague sur la question. –

+0

@Alcon: Vous avez raison. L'absence d'une grammaire de langue claire est parfois vraiment gênante. – Gumbo

3

les clés et les valeurs peuvent être des expressions arbitraires *

$r = array(
    phpversion() => 1 + 2 - 3, 
); 
  • , sauf que les clés ne peuvent pas être des tableaux/objets/ressources
1

Oui, il est tout à fait légal! Vous pouvez également utiliser des variables pour les noms clés:

$myArr = array($thekey => $theval); 

La clé ou la valeur pour une paire clé/valeur n'a pas besoin d'être dans un format particulier, il a juste besoin d'évaluer sur un type primitif (c.-à- : un nombre ou une chaîne). La construction array() recherche simplement les valeurs "simplifiées" qui sont passées; ça ne se soucie pas de ce qu'ils sont ou comment ils sont arrivés là.

Espérons que cela aide!

Questions connexes