函数调用在php中具有全局变量的函数

时间:2017-10-09 15:58:53

标签: php scope global-variables

我的helpers.php文件已通过我require中的index.php添加。helpers.php有点像这样

function one($arg)
{
    //do something
}
    function two($arg)
    {
        global $variable1;
        global $variable2;
        global $flag1;
        global $flag2;
        //dp something
    }

我的观点是根据我在function two中声明的全局标志生成的。 观点是这样的

if($flag1 && $flag2)
{
    //do something
}
elseif($flag1==false)
{
    //do this
}
elseif($flag2==false)
{
    //do that
}

我有switch语句在我的index.php中使用这些函数,然后相应地渲染视图。代码片段是这样的

switch($variable)
{
    case "1":
             $data = one($variable);
             two($variable);
             require("../views.php");
             break;
    case "2":
            $data = one($variable);
             two($variable);
             require("../views.php");
             break;
    default:
            //something
            break;
}

我以这种方式获得所需的输出但是如果我在helpers.php中为我的switch语句编写一个函数来避免大量的复制粘贴,例如

function three($argument)
{
    $data = one($variable);
    two($variable);
    require("../views.php");
}

然后每次在我的switch语句中调用此函数,如

switch($variable)
    {
        case "1":
                 three($variable);
                 break;
        case "2":
                three($variable);
                 break;
        default:
                //something
                break;
    }

然后我在观看页面中收到未定义$flag1$flag2的通知,我无法理解为什么以及如何通过保留function three并在{switch中使用它来解决此问题1}}陈述。

0 个答案:

没有答案