2010-08-19 2 views
0

еще раз. Прямо сейчас у меня проблемы с некоторыми базовыми функциями PHP. У меня есть веб-страницу, которая содержит следующий код:Вытягивание значений из массива в отдельный файл

function laserOn() 
    { 
    $_SESSION['laser'] = TRUE; 

    $num_victims = rand(2,125); 
    $vic = rand(0, count($victims) - 1); 

    print $num_victims." ".$victims[$vic]." have been vaporized!<br />"; 
    } 

и отдельный файл, victims.php который я имею require_once «D, который содержит

$victims = array(
    1 => "chickens", 
    2 => "horses", 
    3 => "werewolves", 
    4 => "zombies", 
    5 => "vampires", 
    6 => "cows" 
); 

На странице, однако, только отображает число и строку, а не значение массива. Что я делаю неправильно здесь?

+0

не вы получаете сообщение об ошибке ? не является ли этот массив определяемым вне сферы действия этой функции? –

ответ

3

$victims не входит в сферу действия вашей функции. Чтобы использовать глобальную переменную в области функций, вам нужно объявить ее с помощью ключевого слова global (см. variable scope в документах php.net).

function laserOn() 
{ 
    global $victims; 

    // ... rest of your function 
} 

В качестве альтернативы, вы можете потребовать файл, содержащий массив внутри функции, но это не может быть желательно (особенно если файл определяет функции своих собственных!)

+0

Так оно и было, точно. Спасибо! – Andy

Смежные вопросы