2012-01-15 64 views
0

獲得對外宣稱的功能陣列的每個功能傳遞參數沒有通過參數在PHPGET數組聲明的功能,各功能之外沒有在PHP

<?php 
    $arr2= array('00','12','23','73'); 

    function f1() { 
    print_r($arr2); 
    } 

    f1(); 
?> 

在這裏我們可以通過數組F1($ ARR2),但我想知道是否我們在函數'f1'內不接受數組,而不通過,如設置全局或其他的東西?

我只想知道,不管它是否可能?

+1

是什麼背景?這些功能是什麼?什麼是確定的用例?你知道,可以有很多不同的答案,取決於具體情況。將問題標記爲不是真正的問題。 – 2012-01-15 07:15:41

+0

如果你有許多功能都必須使用相同的數據,你通常會去上課和/或學習對象。使用'global'不是解決這個問題的好辦法。 – deceze 2012-01-15 07:20:41

+0

@deceze:我跟着一個沒有使用類的結構,這就是爲什麼我去[全球]。 – 2012-01-15 07:24:06

回答

3

使用global

function f1() { 
    global $arr2; 
    print_r($arr2); 
    } 

然而,隨着@steven已經指出的,它被認爲是不好的做法。

這些線程說說爲什麼全局變量被認爲是不好:

+0

在函數內部聲明瞭許多數組,它可以用於各種其他函數。所以我把這些數組放在函數的外面,在我需要的每個函數中設置它爲'全局'。這是不好的主意嗎? – 2012-01-15 07:11:46

1

使用全局變量是可能的,但它通常被認爲是不好的做法。從php.net

例子:

<?php 
function test() { 
    $foo = "local variable"; 

    echo '$foo in global scope: ' . $GLOBALS["foo"] . "\n"; 
    echo '$foo in current scope: ' . $foo . "\n"; 
} 

$foo = "Example content"; 
test(); 
?> 
1

使用global $arr2

<?php 
    $arr2= array('00','12','23','73'); 

    function f1() 
    { 
    global $arr2; 

    print_r($arr2); 
    } 

    f1(); 
?>