2013-09-12 3 views
0

Мне нужно получить доступ к переменной, которая объявлена ​​в другом php-файле внутри функции. Как я могу это сделать?Доступ к переменной внутри функции - php

a.php

<?php 

$global['words']=array("one","two","three"); 

echo "welcome" 
?> 

b.php

<?php 

$words = $global['words']; 
require_once('a.php'); 

print_r($global['words']); 

function fun() 
{ 

print_r($global['words']); // not displaying here 

} 

fun(); 
?> 

теперь я в состоянии получить доступ к "$ глобальных [ 'слова']" переменную в b.php файле, но не в функция, как я могу сделать ее видимой внутри функции?

+1

Посмотрите на [ это] (http://stackoverflow.com/questions/14913718/global-variables-in-a-loaded-page/14913814#14913814) –

ответ

1

Предпочтительный вариант для передачи в качестве параметра:

function fun($local) { 
    print_r($local['words']); 
} 

fun($global); 

Если по каким-то причинам вы не можете использовать этот подход, то вы можете объявить переменную как глобальный:

function fun() { 
    global $global; 
    print_r($global['words']); 
} 

fun(); 

Или использовать $GLOBALS массив:

function fun() { 
    print_r($GLOBALS['global']['words']); 
} 

fun(); 

Но в целом, использование глобальных переменных является considered bad practise.

+0

Как это отличается от моего ответа? – letiagoalves

+0

Потому что я рекомендовал использовать параметр, который является правильным способом сделать это (независимо от того, спросил ли он ОП или нет). – cmbuckley

+0

все еще, как он отличается? – letiagoalves

0

на самом деле ваша функция не знает ни о чем вне его, если это не классы, или глобальный PHP вары, такие как $_POST, вы можете попытаться определить функцию:

function fun() use ($globals) 
{ 

} 
+1

Ключевое слово 'use' доступно только для анонимных функций. – cmbuckley

+0

спасибо, что я забыл об этом ( – karaken

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