在include文件中发送动态参数

时间:2015-08-10 15:07:40

标签: php

view函数中存在不可预测的参数长度:

class My_Controller {
    public function view()
        {
            $variables = func_get_args()
            include $variables[0];
        }
}

class autoload extends My_Controller {
    function homePage ()
        {
            $this->view('home.php', $oneData, $twoData, $threeData)
            //the arguments lengths is unpredictable here;
        }
}

如何在include语句中传递参数$oneData$twoData$threeData而不在function view ()中静态声明它?

提前致谢

3 个答案:

答案 0 :(得分:1)

我不太清楚你的include语句在做什么。但是,如果将视图函数更改为接受值数组,则可以将变量传递给视图。

class My_Controller {
    public function view($viewFile, $arrValues)
        {
            print_r($arrValues);
            foreach ($arrayValues as $variableName=>$variableValue) {
                echo "The value for variable $variableName is $variableValue \n";
            }
        }
}

class autoload extends My_Controller {
    function homePage ()
        {
            $this->view('home.php', array(
               'oneData'   => $oneData,
               'oneData'   => $twoData,
               'threeData' => $threeData)
            //the arguments lengths is unpredictable here;
        }
}

答案 1 :(得分:0)

更新

只有函数可以接受参数,文件不能。 将您的实际逻辑放在一个函数中,并在包含该文件后在view()中调用该函数。

答案 2 :(得分:-1)

尝试使用file_put_contents

class My_Controller {
    public function view()
        {
            $variables = func_get_args()
            call_user_func_array('file_put_contents',$variables);
        }
}

class autoload extends My_Controller {
    function homePage ()
        {
            $this->view('home.php', $oneData, $twoData, $threeData)
            //the arguments lengths is unpredictable here;
        }
}

希望有帮助:)