PHP在函数中声明全局变量

时间:2014-02-18 00:11:33

标签: php function

我已经在这里待了两个小时,也许我可以请一些帮助。

好吧,所以我有一个用户提交的基本$ _POST变量。如下所示,代码首先检查是否提交了值,如果没有,则将其设置为默认值。如果用户确实提交了值,则会将变量(稍后使用)设置为提交的值。你可以在下面看到我的代码。

if(!isset($_POST['pSize'])) {
    $pSize = "16"; 
}
else {
    $pSize = ($_POST['pSize']);
};

echo $pSize;

上面的问题是我可能有50个左右的区域,用户将提交,并且只有myFunction('name','default','value');比为每个区域写出上述内容要好得多。但是,我遇到了一个问题。以下是我尝试过的几个例子。 (原谅任何小错误;我没有我尝试过的实际代码,只是我所得到的代码。我遇到的代码问题不是语法错误。)

function newFunction($title, $default, $value)
    if(!isset($_POST[$value])) {
        $title = $default; 
    }
    else {
        $title = ($_POST[$value]);
    };

newFunction('pSize','16,'24');
echo $pSize;

我很快就了解到,由于函数中的变量不能在该函数之外使用,除非它们是全局函数,否则上述函数将无效。这是有道理的,因为如果可以使用变量$title,它将被设置为许多不同的东西,这取决于我调用函数的次数。考虑到这些,我试图设置全局变量。

function newFunction($title, $default, $value)
    if(!isset($_POST[$value])) {
        global $title . 'Title' = $title; 

...

newFunction('pSize','16,'24');
echo $pSizeTitle;

我最后尝试将全局变量设置为我为函数提供的$title的名称,其字符串为'Title',创建新的全局变量pSizeTitle,因此我可以回显该变量出。这可能实际上是有效的,除了我无法定义一个全局变量,附加到最后的东西,只有一个简单的名称,这对我不起作用,因为我需要为每个{{我需要一个新的全局变量我有一个项目。

希望这很清楚,对不起,如果这是一个绝对的noob问题,我真的无法超越这个。

2 个答案:

答案 0 :(得分:3)

我认为主要的问题是你没有在你的函数中返回任何数据,试着去做

function newFunction($title, $default, $value)
{
    if(!isset($_POST[$value])) {
        $title = $default; 
    } else {
        $title = ($_POST[$value]);
    }
    return $title;
    //return was missed
}

答案 1 :(得分:0)

function checkDefault($index, $default)
{
    return isset($_POST[$index]) ? $_POST[$index] : $default;
}

$title = checkDefault("title", "my default value");