2012-01-15 35 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(); 
?>