2011-09-24 2 views
0

J'ai un jeu qui affichera dix cartes aléatoires basées sur le nombre et la couleur, mais j'ai besoin de vérifier un tableau pour voir si la carte a déjà été affichée. Mais mon tableau local $card n'est pas enregistré lorsqu'il passe à travers la fonction. Voici tout mon code pour le moment s'il vous plaît essayer de le courir et dites-moi ce que je fais mal si vous voulez les images qu'ils sont disponibles.Tableau local PHP en fonction?

http://storealutes.com/blackjack/cards.zip

ici est mon php:

<?php 
            //suit 1=Clubs | 2=Hearts | 3=Spades | 4=Diamonds// 
            //Color 1=1or11 | 2-10=# | 11-12=10// 
$number; 
$suit; 
$card = array(); 

function newcard($number,$suit,$card){ 

$arrsuit = array (clubs, hearts, spades, diamonds); 
$arrnumber = array (a, 2, 3, 4, 5, 6, 7, 8, 9, 10, j, q, k); 

$number = $arrnumber[rand(0,12)];    //Creates card value 
$suit = $arrsuit[rand(0,3)];  //Create card suit 
$card .= array ($suit ." ". $number, hello);  //difines card name 
return "<img src='cards/" . $suit . "-" . $number . "-150.png'/>"; 
} 
for($i = 0; $i < 10; $i++){ 
echo newcard($number,$suit,$card); 
} 
echo $number; 
foreach($card as $value){ 
    echo $value; 
} 


?> 

Répondre

1

Pour accéder à une variable à l'intérieur d'une fonction utiliser les techniques de suivi.

$GLOBALS['card'][] = array ($suit ." ". $number, hello); 

ou

global $card; 
$card[] = array ($suit ." ". $number, hello); 
+0

J'ai essayé cela Je pense que j'ai besoin d'insérer de nouvelles valeurs dans le tableau ou quelque chose, je ne sais pas quand j'utilise le code ci-dessus, il fait écho "Array" au lieu de la combinaison. –

+0

Maintenant im penser que ny echo doit être différent de celui de la fonction ai-je besoin de 'global $ card; 'le lien avant le' foreach'? –

2

Contrairement à la plupart des langues sain d'esprit, il y a peu de sens de la portée lexicale en PHP. Ainsi, votre fonction ne reconnaît pas les variables définies globalement. La solution facile pour cela est d'utiliser global $card; à l'intérieur de votre fonction.