PHP在更多函数之间传递变量

时间:2011-02-15 13:24:45

标签: php global-variables

我需要将大约30个变量传递给3个函数,例如

displayform() - 从DB中提取某些表单数据,并且需要将一些表单数据输入到表单中。

checkform() - 检查是否正确输入了所有数据。

errors() - 这将显示错误(如果有的话)

processform() - 此过程将所有数据存储到DB

现在我正在使用GLOBAL $变量;在函数之间传递这些变量,但是我必须在函数begin处将每个变量声明为全局并且导致一个大文件,所以我只想知道有没有办法将变量声明为全局变量(最好只有一次)所以所有功能都可以使用它们吗?

4 个答案:

答案 0 :(得分:4)

您可以尝试将所有变量放入关联数组中,只需在函数之间传递此数组,例如:

$omgArray = array();
$omgArray['lolVar1'] = lolVar1;
$omgArray['wowVar3'] = wowVar3;

yeaaaFunction($omgArray);

function yeaaaFunction($omgArray){
    echo $omgArray['lolVar1'] . $omgArray['wowVar3'];
}

答案 1 :(得分:2)

30个变量?除了30个变量难以维护之外,还有30个全局变量更糟糕。你有一天会发疯...

使用数组并将数组作为参数传递给函数:

$vars = array(
    'var1' => 'value1',
    'var2' => 'value2',
    ///...
);

displayform($vars);
//etc.

Learn more about arrays

答案 2 :(得分:0)

我有一个类似的场景,我为类似于你的表单处理编写了一个类库。我将所有表单数据存储在表单类内部的单个数组中。

在表格外部移动表单数据时,我将数组序列化为JSON格式。 JSON格式(通过PHP自己的序列化格式)的优点是它可以很好地处理嵌套数组。您还可以在一次调用中转换所有表单域的字符集。

在我的应用程序中,我将所有表单数据存储为数据库中的JSON字符串。但我猜这一切都取决于你的需求。

答案 3 :(得分:0)

您可能希望阅读有关注册表模式的信息,具体取决于您的数据,它可能有用或无用。

相关问题