2016-02-19 2 views
0

Итак, у меня есть два PHP функции:PHP доступ к переменной из другой функции

function RADD_FILE_GLOBAL(){ 
    ... 
    $file_att = implode(",",$files); 
} 

мне нужно открыть $file_att переменную из другой функции:

function FILE_NAME(){ 
// need $file_att here 
} 

Как получить доступ к переменной из другая функция?

+0

вы можете определить эту переменную как глобальную –

+0

Вы можете передать его в качестве параметра – Dezza

+0

@Dezza, для передачи этого параметра внутри функции, то нужно вызвать вторую функцию внутри первой функции. так почему бы вам не объявить его глобальным? –

ответ

2

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

function RADD_FILE_GLOBAL(){ 
    /* other code */ 
    $file_att = implode(",",$files); 
    return $file_att; 
} 
function FILE_NAME($file_att){ 
    /* do something with variable */ 
} 
/* or */ 
function FILE_NAME(){ 
    global $file_att; 
    /* do something with var */ 
} 

/* run first function, return a value */ 
$file_att=call_user_func('RADD_FILE_GLOBAL'); 

/* later */ 
call_user_func('FILE_NAME',$file_att); 
+0

Лучшее решение. –

1
$file_att = ''; 

function RADD_FILE_GLOBAL(){ 
    global $file_att; 
    ... 
    $file_att = implode(",",$files); 
} 

function FILE_NAME(){ 
    global $file_att; 
// you have now $file_att here 
} 
-1

Вы можете использовать глобальный, но он немного уродливый и абсолютно бесполезный. Лучше всего то, что говорит @Dezza, передать его в качестве параметра:

function RADD_FILE_GLOBAL(){ 
    $file_att = implode(",",$files); 
    $file_name = FILE_NAME($file_att); 
} 

function FILE_NAME($file_att){ 
    // use $file_att 
} 
+0

Что делать, если кто-то не хочет называть его первой функцией ??? –

+0

Затем назовите его другой функцией? или откуда-то еще? Вы должны вызвать функцию в один момент ... – Ianis

+0

Но эта обновленная переменная не будет доступна вне этой функции, если вы звоните из другого места. –