PHP локальный массив в функции? - PullRequest
0 голосов
/ 24 сентября 2011

У меня есть игра, которая будет отображать десять случайных карт в зависимости от числа и масти, но мне нужно проверить массив, чтобы увидеть, была ли карта уже отображена. Но мой локальный массив $card не сохраняется при прохождении через функцию. Вот весь мой код на данный момент, пожалуйста попробуйте запустить его и скажите мне, что я делаю неправильно, если вы хотите, чтобы изображения были доступны.

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

вот мой 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;
}


?>

Ответы [ 2 ]

2 голосов
/ 24 сентября 2011

В отличие от большинства здравомыслящих языков, в PHP мало смысла в лексическом понимании.Итак, ваша функция не распознает переменные, определенные глобально.Это легко исправить, если использовать global $card; внутри вашей функции.

1 голос
/ 24 сентября 2011

Чтобы получить доступ к переменной внутри функции, используйте следующие методы.

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

или

global $card;
$card[] = array  ($suit ." ". $number, hello);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...